Steve Smith hammered 105 off 93 balls and Aaron Finch returned to form with 81 as the hosts piled up 328 for seven after electing to bat on a good pitch at the Sydney Cricket Ground.
India were bowled out for 233 in reply despite an opening stand of 76 between openers Rohit Sharma and Shikhar Dhawan and a typically defiant run-a-ball 65 from captain Mahendra Singh Dhoni.
James Faulkner finished with three for 59, while left-arm fast bowlers Mitchell Johnson and Mitchell Starc claimed two wickets each.
Australia will take on tournament co-hosts New Zealand in the final at the Melbourne Cricket Ground on Sunday.
The four-time champions, who last won the title in 2007, have now won all seven World Cup semi-finals they have contested since the inaugural edition in 1975.
India will rue a missed opportunity after an impressive campaign earlier in the tournament when they won all seven matches, piling up 300 or more runs each time they batted first and bowled out their rivals in every game.
But they failed to dismiss Australia as in-form seamer Mohammad Shami went for 68 runs in 10 wicketless overs and Umesh Yadav conceded 72 runs in nine overs for his four wickets.
“I feel really excited. Smithy was exceptional once again, and I was really proud of the execution of our bowlers,” said Australia captain Michael Clarke.
Dhoni admitted the lower-order batting had let the side down.
“Overall Australia played very good cricket. Over 300 is a very big score to chase, but I thought it was just over par,” said Dhoni.
“Our lower order really needs to work hard on their batting.”
– Quick wickets –
A sell-out crowd of some 42,000 at the SCG were treated to good cricket on a grassless, even-paced wicket that enabled batsmen to play shots freely.
Smith and Finch shared a second-wicket stand of 182 before India hit back with quick wickets as the hosts stumbled from 191 for one in the 35th over to 248 for five in the 43rd.
But Shane Watson (28), James Faulkner (21 off 12 balls) and Mitchell Johnson (27 not out off nine) helped Australia plunder 57 runs in the last five overs to ensure they went past the 300-run mark.
Teams batting second had won nine of the last 12 one-day internationals at the SCG and a 10th victory appeared on the cards after Dhawan and Sharma gave India a sound start.
Dhawan was repreived by Brad Haddin in the fourth over when the wicket-keeper dived to his left to hold the edge off Josh Hazlewood, but the ball spilled out of his glove.
Sharma celebrated his partner’s luck by hooking Johnson for a six and Dhawan welcomed Faulkner to the attack in the 10th over with two boundaries and a glorious six over mid-wicket.
The entertaining stand ended in the 13th over when Dhawan stepped out to loft Hazlewood and skied a catch to Glenn Maxwell fielding at deep cover.
Dhawan’s 45 off 41 balls contained six boundaries and a six.
India were hit by a second blow two overs later when star batsman Virat Kohli miscued a pull off a Johnson bouncer and was easily snapped up by Haddin for just one run.
The dismissal continued the Indian vice-captain’s lean run in the tournament where 46 against South Africa was his best effort after a match-winning century against Pakistan.
India were reduced to 108 for four in the 23rd over as Johnson bowled Sharma off the pads for 34 and Suresh Raina was caught behind by Haddin off Faulkner for seven.
Dhoni and Ajinkya Rahane added 70 for the fifth wicket but the skipper saw his partner edging Starc for 44 before Ravindra Jadeja was run out for 16 by a direct throw from Smith.
India’s fate was sealed when Dhoni himself was run out in the 45th over as Maxwell broke the stumps with a smart throw from mid-wicket.