Vettel held the lead after undercutting teammate Charles Leclerc, however Leclerc quickly caught up to the German after he made his stop for the medium compound.
Vettel was able to hold back Hamilton for a handful of laps, which allowed Leclerc to stretch out more of a gap - which likely proved vital, as Hamilton had caught Leclerc on the final lap of the race.
“For the team, yes, I’m happy," Vettel said after the race. "For myself I’m not happy. I didn’t have the pace ultimately, I was struggling to stay on top of the tyres, which is normally not a problem for me.
“It was a tough race. From the first stop onwards, it was clear we wouldn’t be in the fight. So all I could do by then is serve the team.
“I was struggling in the corners, so that allowed [Hamilton] to get close. I couldn’t hold him off for a very long time. I tried to make him lose time in order to give Charles a cushion. In the end it was just enough. It did the job.
"I tried to keep second place, but I couldn’t do it. At that point the best thing to do was to pit once more for tyres and carry on without struggling so much.
"I was struggling to stay on top of the tyres which normally is not a problem at all so it was a tough race. I didn’t have the pace, ultimately.
"We have to understand why my car had such high tyre degradation and we will do a full analysis of the situation to understand the reasons why I did not feel comfortable."
Vettel is now just 12 points ahead of Leclerc in the drivers' championship in fourth place, while he closed the gap to Verstappen in front to 12 points, after the Dutchman crashed out on lap one.
Bahrain International Circuit - Winter testing