The Red Bull driver has won his sixth race of the season with a comfortable victory at the European Grand Prix.
Vettel rules the streets of Valencia and F1 season
Vettel beat Fernando Alonso of Ferrari by 10.891 seconds for his second straight victory along Valencia's street circuit. It was the German's fifth win this season starting in pole and came in stifling 46ºc heat.
Vettel, the defending F1 champion, extended his championship lead to 77 points with his 16th career victory. Vettel leads with 186 points, Button and Webber both have 109.
"Fantastic race - better than anything I could have imagined," Vettel screamed over his car radio.
The F1 season has previously been marked by exhilarating overtaking, thanks to new technology and tires. However, those additions failed to spice up Sunday's race for the 85,127 fans at the notoriously hard to overtake America's Cup harbour course.
Instead, Vettel continued his dominating title defense with a sixth victory from eight races - and second place in the other two.
Hamilton stayed fourth with 97 points. Alonso trails Vettel by a huge 99 points on 87 after a second runner-up finish in three races.
Hamilton surrendered his third-place start with a terrible beginning as both Ferraris passed the McLaren driver, who has been under pressure to curb his aggressive driving style following incidents at the last two GPs.
Button also surrendered sixth to Nico Rosberg at the first corner, but a sly pass later on recouped it to leave the McLarens trailing both the Red Bulls and Ferraris.
After the first round of stops Hamilton had managed to get past Massa but still trailed Alonso, who was right on the back of Webber before passing the Australian at the end of the long straight near the close of lap 21.
Webber recovered his place by the second round of pits while a poor stop by Massa dropped the Brazilian out of Hamilton's reach.
Alonso recovered second after the final round of stops but his hopes of catching Vettel were hampered as he was slowed by traffic after coming out of the pits.
Rosberg finished seventh for Mercedes ahead of Jaime Alguersuari, whose seat at Toro Rosso has been under pressure. Adrian Sutil of Force India was ninth and Renault's Nick Heidfeld was 10th.
Sergio Perez's first race since crashing at Monaco yielded an 11th-place finish as Sauber opted for a one-stop strategy. The season continues on July 10 with the British GP.