Australia slumped to 98 for six after being asked to bat first by Windies captain Darren Sammy, before Bailey (125 not out) combined with James Faulkner (39) for a 100-run partnership to take the hosts' total to 266 for seven off their 50 overs.
The tourists were then all out for 212 in the 39th over.
The West Indian chase did not start well when Starc claimed the key wickets of Chris Gayle and Ramnaresh Sarwan in the second over.
A 126-run stand between Kieran Powell (83) and Dwayne Bravo (45) had the tourists in front in the game before Glenn Maxwell removed Bravo with his first limited-overs wicket and then Starc claimed two more in the 30th over.
The West Indians went from 159 for three and seemingly in control of the run chase to 179 for eight and out of the game.
Sunil Narine (26) did his best to produce an unlikely victory when he hit Maxwell for four sixes in a row, but Maxwell had him stumped with the final ball of the 37th over.
Bailey put the icing on the cake with a run-out of Jason Holder.