Hamilton won from Kimi Raikkonen of Ferrari, with Sergio Perez’s Force India third.
Raikkonen’s team-mate Vettel, who started from pole position, took fourth place.
Hamilton now has 70 points to Vettel’s 66.
It was Mercedes’ first victory of the season.
Red Bull’s Australian Daniel Ricciardo, last year’s winner in Baku and also in China two weekends ago, smashed into the back of team mate Max Verstappen in a lap 40 collision that ended the race for both of them.
Read On euroNEWS