David Warner hit his first international hundred since returning from his ball-tampering ban as Australia beat Pakistan by 41 runs in a seesaw game and ensured Mohammad Amir's maiden ODI five-wicket haul came in vain.
Warner (107 off 111) edged through the slips for four to move from 97 to 101, with the boundary earning him a 15th ODI century and first since he hit 124 against India Bengaluru in September 2017.
Australia were 232-3 from 35.1 overs at that point but then folded to 307 all out in 49 at Taunton with Amir (5-30) recording the best figures by any bowler in the 2019 World Cup so far.
Amir had started Pakistan's comeback when he broke a 146-run opening stand between Warner and Aaron Finch (82 off 84) in the 23rd over, with Australia going on to lose all 10 wickets for 161 runs.
Pakistan also suffered a batting collapse, tumbling from 136-2 to 160-6 once Imam-Ul-Haq (53) and Mohammad Hafeez (46) had their third-wicket stand of 80 broken by Pat Cummins (3-33).
But Sarfaraz Ahmed (40), brilliantly supported by Hassan Ali (32 off 15) and Wahab Riaz (45 off 39) in partnerships of 40 and 64 respectively, kept his men in the hunt until Mitchell Starc (2-43) struck twice late on - Pakistan bowled out for 266 in 45.4 overs when Sarfaraz was run out by Glenn Maxwell.
Australia, now behind only table-toppers New Zealand on run rate, rebounded from defeat to India over the weekend and left Pakistan with one win from four games ahead of their encounter with India at Old Trafford on Sunday, live on Sky Sports Cricket World Cup from 10am.
Amir did not deserve to be on the losing side - the left-armer beat Finch and Warner's bat frequently early on and finally engineered the initial breakthrough when Finch skied him to cover.
Finch, who was dropped on 26 by Asif Ali at slip and on 44 by Sarfaraz Ahmed behind the stumps, has now passed fifty in five of his six ODIs against Pakistan in 2019, having struck two hundreds and two half-centuries in a 5-0 win over Sarfaraz's men in the UAE in March.
Finch's exit triggered a Pakistan revival, with Steve Smith (10), Maxwell (20) and Shaun Marsh (23) firing only fleetingly.
Shaheen Shah Afridi removed Warner - the 32-year-old caught at deep point - and cleaned up Maxwell through the gate, while Amir followed his dismissal of Finch by accounting for Marsh, Usman Khawaja (18) and Alex Carey (20) before completing his five-for by banishing Mitchell Starc (3).
Cummins then sent Fakhar Zaman packing for a duck when the Pakistan opener cut him to third man with just two runs on the board, while Sarfaraz's side were 56-2 when Babar Azam was ousted for an enterprising 30 - Babar, who played a glut of glorious cover drives, caught attempting to pull Nathan Coulter-Nile and becoming the seamer's 50th ODI wicket.
Imam and Hafeez put Pakistan in control, only for Imam to fall two deliveries after notching his sixth ODI fifty when he gloved an innocuous bouncer from Starc behind, prompting a collapse of 4-24.
Hafeez skewed part-time spinner Finch to square leg, while Shoaib Malik (0) and Ali (5) were caught behind by wicketkeeper Carey off Cummins and Kane Richardson respectively, Carey quickly shaking off a fumbled stumping that would have dismissed Sarfaraz for six.
Hassan unfurled some lusty blows, including back-to-back sixes off Richardson, as did Wahab, who was on course for a third ODI fifty until he was out caught behind off Starc after a successful Australia review with Pakistan needing 44 from 35 balls - Starc then castling Amir two deliveries later.
You can watch every match of the 2019 ICC Cricket World Cup on Sky Sports Cricket World Cup (channel 404), including Australia vs Sri Lanka from 10am on Saturday and India vs Pakistan from 10am on Sunday.