Hamilton passed Bottas, who began the race on pole, at the first corner and held on to the lead until the very end.
The victory at the Shanghai International Circuit is the 75th of Hamilton’s career, his second of the 2019 season and sees him edge clear at the top of the driver standings for the first time this year.
Ferrari’s Sebastian Vettel, who many expected to challenge Hamilton this year, could only finish third behind Bottas.
With just three races of the season gone, the German driver is already 29 points behind Hamilton. His third place finish in Shanghai also came largely thanks to an early team order that allowed him to overtake teammate Charles LeClerc.
LeClerc is in his first season with Ferrari and appeared unhappy with the decision. And his mood would have been unlikely to improve when he was denied fourth place by Max Verstappen of Red Bull.
All that was of little concern to Hamilton, however, who later described the win as “a fantastic result” for Mercedes which locked out the top two positions for the third time in three races.
“Valtteri had been quick all weekend and he did great today to have a one-two together on the 1,000th Grand Prix,” Hamilton continued.
“The strategists in the team have been on point for these first three races so we need to keep it up. It’s so close between us all I have no idea how the next race is going to turn out.”
Bottas, who remains second in the driver standings just six points behind Hamilton, was left to rue what he later described to the official F1 website as a “wheelspin” at the start that allowed his teammate to pass him.
“The pace was similar. In the first stint, in the dirty air, I couldn’t follow (Hamilton),” he said. “It was a shame about the start.”
Further back, Pierre Gasly of Red Bull took sixth place behind LeClerc while Danielle Ricciardo of of Renault took seventh ahead of Sergio Perez in the Force India.
The points positions were closed out by Alfa Romeo’s Kimi Raikkonen and Alexander Albon in the Torro Rosso.
The next F1 race will take place in Baku, Azerbaijan, on April 28.