Bottas, who made a poor start from pole and lost out to five times world champion Hamilton into the first corner, was second for his team's third one-two finish in as many races this season.
The Finn pipped Mercedes team mate Lewis Hamilton to top spot by just 23 thousandths of a second, with the lead Ferrari of Sebastian Vettel three tenths down. China was the third consecutive race Ferrari had told Leclerc to either not overtake Vettel or to let him pass - in Australia he did as he was told, but in Bahrain he ignored the order and passed Vettel anyway.
Team orders at Ferrari has been one of the main talking points this season, particularly in the media where there is a growing resentment at what is perceived to be a bias towards Vettel, a situation not helped by Mattia Binotto's insistence that in the early stages of the season, the German will "have priority".
"I felt I could go faster. The Ferrari is very strong, and we expect this fight for pole position and as a effect race wins to continue".
"The vehicle has been really good this weekend and Lewis also improved a lot in qualifying, it was super close", said the flying Finn Bottas, who is beginning to climb out of the shadow of his more famous team-mate.
'It is far too early to look at the numbers, ' said Hamilton.More news: Facebook down for some users
More news: NY measles outbreak spreads to more counties
More news: Final Israel election results leave Netanyahu on course
Hamilton, who snatched victory in Bahrain after Leclerc's Ferrari failed, said that he had been "struggling with the vehicle so I was just battling the thing", despite joining Bottas on the front row.
Bottas topped qualifying in 1 minute, 31.547 seconds with Hamilton second in 1:31.570.
"I don't think it's frustrating", he added. "It was solid, maybe had a tiny edge over Ferrari, but not what we've seen in the race. We tried, it didn't work, but it seemed right to give that chance to Seb". I think I just finished second overall of quickest starts throughout the year to, I think it was Carlos Sainz or something like that.
"I'm happy to be on the podium", he said. Obviously the objective was to try to catch Mercedes.
"If there is a $30 million man and a $2.5 million man, then the hierarchy is already quite clear", pundit Toni Vilander told Finland's MTV. "It was good fun, but we would have loved to be a bit faster".
"There's no gentlemen's agreement, there's nothing", Rosberg said on Sky Sports.
"We have no idea how the next race is going to turn out".