Vettel passed Max Verstappen on the opening lap of the Singapore Grand Prix, but then fell behind the Red Bull driver following a curiously early stop.
The German was the first of the leaders to pit for fresh tyres, but rejoined in traffic and behind the Force India of Sergio Perez.
Vettel finally passed Perez, but he had lost time to Hamilton, and Verstappen, who had yet to change his tyres.
When the Dutchman did come in, four laps later than Vettel, he had pulled out enough of a gap to leapfrog the Ferrari car for second.
Unlike his rivals, Vettel was also put on the less durable ultrasoft tyre by his team, which meant he had to carefully tip-toe to the flag.
“I said before the weekend that we can only beat ourselves, and we didn’t get everything out of our package,” Vettel said.
“I wasn’t convinced we would make it to the end of the race, but pitting again was no option.
“It doesn’t help [in the championship], but I am mostly thinking about today, and the way we raced we didn’t stand a chance.”
After cooling down, Vettel said he would never lay the blame at his team’s door, but his remarks after the heat of battle were telling.
The race in Singapore – a track which has historically favoured Ferrari in recent times – should have represented a chance for him to reduce the deficit to Hamilton.
Instead, Vettel knows he is running out of time to stop his rival from galloping towards a fourth championship in five years.
“Lewis said he didn’t expect to come here and gain 10 points, and we didn’t come here expecting to lose 10 points,” he added.
“But there is still a long way to go. Our car is working pretty much everywhere so there is no need to be afraid about what is coming.”
Know more about Sport360 Application