Ponting, 36, scored an inspirational 104 under immense pressure to guide the three-time defending champions to a total of 6-260. India were largely untroubled to reply with 5-261 with 14 deliveries to spare.
Mahendra Singh Dhoni‘s team will have home-ground advantage again on Wednesday when they play Pakistan in their semi-final in Mohali.
India started the run chase with all guns blazing. Shane Watson dismissed Virender Sehwag (15) with a short ball but India had already scored 44 off eight overs.
Shaun Tait (1-52 off seven overs) conceded 17 runs from his opening two-over spell but the wayward quick struck the key blow in his fourth over to have Tendulkar caught behind.
Two batting errors from India, Virat Kohli (24) hitting a catch to mid-wicket off a full toss at 3-143 and the run out of Gambhir 25 runs later, kept Australia in the game.
A loose shot from Dhoni (7), caught at point off Brett Lee‘s bowling, boosted Australia’s hopes.
But Yuvraj and Raina took 27 runs from the 40th and 41st overs bowled by Lee and Tait to ease the pressure on India.
Spinner Jason Krejza went wicketless, conceding 45 runs off nine overs, and no Australian bowler took more than one wicket.
Earlier, Ponting used all his experience to carve out his first hundred in international cricket for 13 months in a masterful display on a slow-paced pitch.
The veteran No.3 batsman was finally out in the 49th over, popping a catch off an attempted reverse sweep at 6-245.
Ponting hit seven fours and one six from 118 balls. It was his 30th one-day international hundred and fifth in World Cups.
Ponting has endured a lean summer, averaging only 16.14 in the Ashes and scoring 102 runs at 20.40 in the World Cup’s group stage.
But as Australia’s 2007 World Cup hero Adam Gilchrist predicted, Ponting was just the type of player to get a century on such an occasion, under the pump.
David Hussey, recalled in place of all-rounder Steve Smith, hit a crucial unbeaten 38 from 26 deliveries.
Opener Brad Haddin had given Australia a solid platform with a hard-hitting 53 including six fours and one six.
Zaheer Khan and spinners Yuvraj and and Ravichandran Ashwin took two wickets each for India in front of 42,103 fans at Ahmedabad’s Sardar Patel Stadium.