A bad start, and a good ten laps of grouchy radio messages complaining about his auto, but after that an excellent recovery drive.
The Ferrari driver was hit with a 10-second time penalty after pitching Hamilton into a spin at the start of Sunday's British GP.
Raikkonen is also trying to get to third at the expense of Hamilton, but no success there so far.
The victory extended Vettel's lead in the drivers' championship to 171 points, with Hamilton on 163.
The other great line was Vettel grumbling: "Tell the safety vehicle to slow down".
Hamilton secured pole 24 hours earlier, but his getaway here was slow and it was not long before Vettel had passed the Brit for the lead with Bottas following suit.
Vettel and Raikkonen pitted but Mercedes kept their drivers out, assuring Hamilton that he was "the fastest guy by miles" with everything to play for on tires that would last the distance.
The German was 57 thousandths of a second quicker after their first laps and Hamilton knew he needed to do something special.More news: Water Accidentally Pumped Into Hole Where Thai Football Team Are Trapped
More news: China says 'fully prepared' if trade war kicks off this week
More news: China tariffs: What's behind them, who stands to be hurt? | AP business
Reacting to the comments Sebastian Vettel told reporters: "Things can happen, but I think it's quite silly to think that anything that happened was deliberate".
"Our team did an incredible job this weekend, we have so much support and so much pressure for us all", he said. "I will not give up, believe me, I will not give up".
"Obviously I was pretty happy with the first run in Q3 and then we had a little bit more in sector three and bits around the track, which I think I got right on the second attempt, but I seemed to lose a little bit down the straights". Vettel's error was punished with a five-second penalty, while Raikkonen earned double that amount which he served at his first pit-stop.
"For sure without the mistakes and penalty it would have been better but I tried".
"At the third corner I locked the wheel so I ended up hitting Lewis on the rear corner".
"That's how it goes sometimes". "We're in for a serious fight, which is great for the fans, and I hope we can pull through".
Red Bull's Daniel Ricciardo finished fifth, Renault's Nico Hulkenberg in 6th, Esteban Ocon for Force Indai in 7th, McLaren's Fernandon Alonso in 8th, Kevin Magnussen grabs 9th and Pierre Gasly in 10th for Toro Rosso.
He fell to 16th but recovered to second, ahead of Raikkonen who completed the podium.