Rohit clobbered eight sixes in his 41-ball blitz to lay the foundation for India's imposing 205-5, their highest total in the tournament, in Gros Islet, St Lucia.
Travis Head led Australia's chase with a belligerent 76 but India restricted them to 181-7 to remain unbeaten in the tournament and set up a semi-final against defending champions England in Guyana on Thursday (local time).
The Super Eight clash between two former champion teams had assumed greater importance after Afghanistan stunned Australia at the weekend to throw Group 1 wide open.
Afghanistan are certain to make the last four if they beat Bangladesh later on Monday. If Bangladesh beat Afghanistan, but only narrowly, Australia will progress.
Rohit has not been in the best of form but the India captain forced Starc out of the attack by hitting the fast bowler for four sixes in a 29-run over.
"There was a strong breeze. They changed their plan, so I had to open up the other side of the field," the player of the match said.
"It was a good wicket and you want to back yourself to play those kind of shots. I'm glad it came off very well today."
Josh Hazlewood had drawn first blood as he bounced out Virat Kohli for a duck after Australia elected to field.
Pat Cummins, who had claimed back-to-back hat-tricks in his last two games, was pressed into service to end the batting carnage.
Rohit greeted the seamer by depositing his first ball on the roof of the stadium for a monster six, en route to a 19-ball fifty.
India raced to the 100-mark in the ninth over but Starc returned to deny Rohit what could have been the first hundred by a batter in this tournament.
Suryakumar Yadav (31) and Shivam Dube (28) produced breezy cameos and Hardik Pandya made 27 not out to propel India to their first 200-plus total of the tournament.
Arshdeep Singh rattled Australia by removing David Warner in the first over in what could be the opener's last game in an Australia shirt.
Skipper Mitchell Marsh (37) joined Head and they counter-attacked to put Australia's chase back on track.
Axar Patel leapt to take a stunning one-handed catch at deep square leg to dismiss Marsh but Head raced to a 24-ball fifty.
Kuldeep Yadav castled the dangerous Glenn Maxwell (20) and Jasprit Bumrah effectively sealed India's victory when he dismissed Head with a clever change of pace.
"It's so disappointing. We know we still have a chance to make the semis but today, India got the better of us," Marsh said.
"They got off to a flyer, Rohit Sharma is very hard to stop when he's in that mode. He deserves all the credit for that."