Nico Rosberg crossed the finish line third for Mercedes GP and Renault's Robert Kubica came fourth.
Sutil, who started fourth from the grid, managed well to keep good friend Hamilton at bay.
Hamilton starting at 20th position, drove with power in the opening laps, climbing as high as second at one point, but eventually had to settle for sixth. The 25-year-old McLaren driver took eight drivers on the first lap alone and went past several drivers and then closed the gap on Sutil.
Hamilton, whose qualifying hopes were dashed by rain Saturday, showed his racing skills Sunday. But he couldn't find the speed to overtake Sutil. With Hamilton all over the back of Sutil's car in the last stages, the Force India driver drove a faultless race and kept himself ahead.
It was Sutil's best finish since the 2009 Italian Grand Prix where he finished fourth.
"The race was exciting and fifth place in the end was a great achievement," Sutil said.
Coverage: IPL 2010 "It was always very close with Lewis (Hamilton) just behind in the closing stages but I knew that if I did not make any mistakes I wouldn't have any problems, so it was just trying to concentrate. I had to push, of course, but it was under control."
"We are still a good top 10 competitor and we need to continue like this."
Liuzzi made a good start and was enjoying a battle with Nico Hulkenberg but started to lose power on lap 10.
"I was stuck behind Hulkenberg in the Williams. I was struggling to pass even though I was quicker but we were optimistic for a good race. Unfortunately I had a problem with the throttle after about 12 laps."
Team owner Vijay Mallya was delighted after scoring points in all three races.
"Adrian had a strong race, keeping a cool head under pressure when a charging Lewis Hamilton was right on his tail. Once again we've proved the pace of our car and our ability to really mix it in the midfield. It was disappointing not to have two cars in the points, but it is overall very positive that we can race hard and score points entirely on merit."