Hamilton inherited victory at Sochi when Mercedes told Bottas, who was on course for his first win of the season, to let the championship leader past.
Victory for Hamilton, combined with Bottas keeping Vettel at bay for the rest of the race, means Vettel trails the Mercedes driver by 50 points with five races to go.
Vettel said: “Well done to both of them, they played together as a team very well.
“In their defence, all the questions – I know you guys love controversy so therefore ask naughty questions to them as individuals, but I think in the position they are it’s a no-brainer what they did today.
“Maybe not all the questions are justified.”
Mercedes had used team orders before the race-defining call, having asked Bottas to slow down and back Vettel up to try to avoid Hamilton – who pit a lap later than Vettel – from being overtaken by the Ferrari when he stopped.
Although that failed and Vettel got ahead, Hamilton was able to re-pass his rival on his way to an eighth win of the season that means he is two victories clear of Vettel in the fight for the 2018 crown.
There are 125 points available this season but the gap is the largest it has been all year.
“I’m clever enough, I wasn’t a genius in maths but I was clever enough to pay attention to make out for myself that it’s not getting easier if we lose points,” said Vettel.
“We have to be happy with third, and settle with that for today.
“I still believe in our chance, yes. Obviously it’s not getting bigger if you finish behind but who knows.
“It takes one DNF and all of a sudden things look different. Ideally two! Which I’m not wishing to Lewis, but you never know what happens.
“We need to stay on top of our game, which maybe we haven’t been completely this weekend, and make sure from where we are now we focus on winning the last races.”