Pole-sitter Bottas came home third after struggling on supersoft tires in the middle part of the race, with Kimi Raikkonen closing in but having to settle for fourth after losing time behind Felipe Massa at the start.
Valtteri Bottas leads the pack as they round turn one on lap one of the Bahrain Grand Prix.
Starting from third on the grid, Vettel jumped Hamilton at the start of the race and ran second to Valtteri Bottas early on before an early pit stop and Safety Car period saw the German take the lead.
Vettel was able to use DRS to move onto Bottas' tail, the Finn unable to break away and instead looking to manage his pace and back the field up. Indeed the top five were covered by just three seconds.
Sakhir, Bahrain - 16/04/17 - Pit crew and mechanics surround Ferrari's German driver Sebastian Vettel in the pit lane.
Bottas got away cleanly but crucially Hamilton was beaten for pace by Vettel, while Max Verstappen went from sixth to fourth after passing Raikkonen and Ricciardo.
From that point onwards Bottas' race completely unravelled and on lap 27 he was passed by Hamilton at Turn 1 before pitting for soft tyres on lap 30. The auto was really wonderful to drive and I could control the race in the end.
Stroll's auto was in a unsafe position at the exit of turn one and the safety vehicle was dispatched.
On Sunday in Bahrain it looked as if history could repeat itself as Vettel pitted only for the Safety Car to come out when Lance Stroll and Carlos Sainz crashed.
"We don't know what the outcome would've been if Lewis had been at the front early on", said team boss Toto Wolff. But with the penalty adding an additional five seconds to Hamilton's race time if he did not make another stop, even if Vettel finished behind the Mercedes on the road he only had to be within five-seconds to secure victory.More news: Paul Pogba reveals N'Golo Kante's greatest quality
More news: Sebastian Vettel leaves Ferrari's Kimi Raikkonen deserted
More news: Alec Baldwin Jumps To Kendall Jenner's Defense In Pepsi Ad Fiasco
The former Williams driver duly obliged with Hamilton now in pursuit of Vettel and his lead.
With clean air ahead of him, Vettel built up what proved to be an unassailable lead and the win puts clear daylight between himself and Hamilton in the title fight - 68 points plays 61 after three rounds. Hamilton also appeared to be struggling and had Verstappen close on his tail throughout the opening laps as the Red Bull seemed to extract a remarkable amount of performance from the super-soft compound tyre. The answer arrived eight laps later as he stopped for a second time.
But on new rubber Hamilton, 10 seconds down on Bottas, began his fightback.
"On the restart, out of the last corner, it felt like the tyre just wasn't switched on". Surely, Hamilton could not do the unthinkable with Vettel almost 14 seconds ahead? Marcus Ericsson was out on lap 52, reporting a gearbox issue, while Fernando Alonso was once again a late retirement.
Briton's Jolyon Palmer started a career-high 10th but was 13th and last of those who finished. There is more nuance here, fantastic drives that might end with a 7th-placed finish, the satisfaction of watching a team in the pit-lane working in flawless unison, Fernando Alonso, a world champion of unspeakable talent imprisoned in a McLaren auto with all the speed and reliability of an Altavista search. "It is a long year".
"Right after the start I was thinking we are really quick we can put Valtteri [Bottas] under pressure but he didn't make any mistakes and it was hard down the straight to put pressure on him", he said. Of course the disappointment is there.
"We all had more or less the same start, and Lewis stuck with Valtteri so I could take a risk under braking and get the move done [around the outside of Turn 1]".
"It's been a really great day for me".
Alonso could be heard on the team radio complaining about the complete lack of power his vehicle had and eventually retired at the death of the race.