It was not an easy fight for the 39-year-old Serbian, a firm favourite in China who has never lost in Beijing in 31 matches.
Pumped-up home hope Bu, 24, threatened to spoil the party in the marathon two-hour 52-minute match, frustrating Djokovic by pushing him back and forth across the baseline.

The former world number one needed a medical timeout for his torso after giving back a break in the second set, but held on in a tense tie-break to force a deciding third.
Back with better tennis, 11th-ranked Djokovic won four games in a row and held serve before sinking a backhand winner.
"Amazing atmosphere tonight," Djokovic told an electrified crowd, adding he "tried to give my all".
Ongoing health issues have clouded the tennis star's 2026 season, his bid for a record 25th Grand Slam ending with a shock first-round exit at the US Open after vomiting and cramping on court.
But feeling refreshed in Friday's decider was a welcome change from "investing my emotional, mental... and physical" energy on those issues rather than his game, he told reporters in Beijing.
"Finally that I get to play tennis, you know, without really thinking about all the other things happening," he said.
He will play either Germany's Alexander Zverev, the top seed in Beijing, or Chinese wildcard Shang Juncheng in the quarter-final.
