Clocking one hour, 22 minutes, 49.328 seconds, Vettel won ahead of his Red Bull-Renault team-mate Mark Webber, of Australia to record his second win of the year.
Rubens Barrichello was third and fellow Brazilian Felipe Massa was fourth.
Hamilton, the reigning F1 champion with Grenadian roots, had started 18th on the grid.
“I gave it my all today. Despite fighting for the lower positions,” Hamilton said.
With only nine points so far in the season, Hamilton is 11th in the drivers’ standings, a whopping 55 off the leader Jenson Button (64) and Hamilton was happy he still had the support of the home fans.
“The best thing about this weekend has been the fans: they really gave me some consolation by cheering me on throughout the race. I would love to have given them a result to make them happy and my country proud, but we still have a lot of work ahead of us before that will be realistic,” he said.