West Indies were sent in to bat and compiled 282 for eight off their 50 overs, with Marlon Samuels scoring 125 off 134 balls for his maiden ODI century against Australia.
Wicketkeeper-batsman Denesh Ramdin chipped in with a brisk 91 in a 192-run fourth wicket stand as the hosts roared back after losing three early wickets.
Australia made a wobbly start to their reply, with openers Aaron Finch (16) and Usman Khawaja (17) going early, but settled to chase down the target with eight balls to spare, Glenn Maxwell (46 not out) securing victory with a devastating late burst.
The result means the winner of Friday’s match between West Indies and South Africa will advance to Sunday’s final against Australia at Kensington Oval in Bridgetown.
While captain Steve Smith (78) top-scored for Australia with his third successive ODI half-century, the batting form of team mates Mitchell Marsh (79 not out) and Maxwell pleased the skipper.
Maxwell’s innings included a magnificent switch-hit sweep for six over cover-point off spinner Sunil Narine in the 46th over.
In the next over he bludgeoned 14 runs off three balls off Carlos Brathwaite to effectively seal victory.
“An innings like that, I was speechless at the other end,” said Marsh in an on-field interview. “Maxie has a lot of doubters but an innings like today shows why he’s such a pivotal part of the team.”
Smith, who downplayed a question about apparent on-field sledging, had plenty of praise to share around.
“I thought Mitchell Marsh played a very mature innings and Glenn Maxwell finished off nicely with a few of his trademark reverse slog sweeps, or whatever they’re called,” he said.
West Indies captain Jason Holder limped off with a strained left hamstring after bowling just two overs and is doubtful for Friday’s showdown against South Africa.