German Nico Rosberg got his second successive third place for Mercedes with Spain's Fernando Alonso, who earned a drive-through penalty for a jump start, finishing fourth for Ferrari.
Button now has 60 points overall, 10 clear of Rosberg with Hamilton and Alonso third and a point further back.
Pole-sitter Vettel, who won the last race in Malaysia and here last year, could only manage sixth behind Robert Kubica's Renault, leaving the Shanghai race still without a repeat winner after seven years.
"Today was very chaotic and in the end to take sixth can be quite important," said Vettel.
"Obviously, our main competitors finished ahead, so that's not nice. It was a very difficult race for us," he added.
this
Users
Comment
article