David Warner scored a brilliant 166 from 147 balls as Australia beat Bangladesh by 48 runs at Trent Bridge to return to the top of the World Cup group.
The opener took 110 balls to get to three figures as he struggled for his usual fluency, before happening upon it after reaching his century to rack up the highest individual score of this World Cup so far.
Aaron Finch (53) and Usman Khawaja (89) both shared century stands with Warner and a devastating final few overs took Australia up to 381-5.
Bangladesh battled hard, with Mushfiqur Rahim (102no) scoring a superb unbeaten hundred, and registered their highest ever ODI total, 333-8, but it came in vain as their top-four aspirations took a hit.
Having won the toss and chosen to bat, Australia started as they have throughout this tournament, in steady unspectacular fashion despite boasting the destructive batting talents of Finch and Warner.
Neither were really able to get away from Bangladesh and yet by the time Finch departed in the 21st over, caught at short third man off Soumya Sarkar, they had added 121 for the first wicket at a shade under six an over.
The innings continued in the same vein as Khawaja replaced Finch, with Warner playing the occasional shot that hinted his best was not far away before going through a spell of getting bogged down.
With 20 overs to go, though, there was a concerted effort to up the ante and once Warner reached his hundred in the 35th over, everything seemed to click into place for him.
After getting to 100, he smashed seven fours and three sixes, before replicating Finch's dismissal by chipping Soumya to short third man.
Glenn Maxwell came in and blitzed 32 from 10 balls before he was run out and Soumya, bowling for the first time in the tournament, denied Khawaja a hundred when he had him caught behind.
Mustafizur Rahman trapped Steve Smith (1) lbw as Australia went in search of quick runs to bolster an already imposing total, but while the flurry of wickets denied them a score of 400-plus, Marcus Stoinis (17no) and Alex Carey (11no) ensured the innings still finished strongly.
Bangladesh's chase got off to an inauspicious start as Soumya (10) was run out by Finch after a calamitous mix-up with Tamim, but the in-form Shakib Al Hasan came to the crease and he and Tamim began the rebuild.
A stand of 79 in the next 15 overs helped but the loss of Shakib (41), caught via a leading edge off Stoinis (2-54), was a major setback. Tamim (62) was beginning to fire but dragged on off Mitchell Starc (2-55) soon after reaching his first half-century of the tournament.
Liton Das (20) overcame being hit on the helmet by a Starc bouncer first ball to play an entertaining and elegant cameo but when he was lbw to Adam Zampa (1-68), Bangladesh's already slim hopes appeared to be over.
Mushfiqur and Mahmudullah combined for a fifth-wicket stand of 127 to put the smallest seed of doubt in Australian minds but, ultimately, Bangladesh had left themselves too much to do.
Mahmudullah holed out for 69, from 50 balls, off Nathan Coulter-Nile (2-58) as his fantastically entertaining innings came to a close and Sabbir chopped on next ball, leaving Mushfiqur, with any realistic prospect of victory gone, to try and reach his century.
He got there in the penultimate over to huge cheers from the Bangladesh fans in the crowd but it was Australia celebrating at the end as they go back above New Zealand and England to the top of the group, while Bangladesh will likely have to win their three remaining games to have any chance of progressing to the semi-finals.
You can watch every match of the 2019 ICC Cricket World Cup on Sky Sports Cricket World Cup (channel 404), including England vs Sri Lanka from 10am on Friday.