Jonathan Trott’s 102 formed the basis of England’s 299-8, during which Paul Collingwood became the first Englishman to score 5,000 limited-overs runs.
Australia’s innings stalled when opener Shane Watson was dismissed for 64.
A late rally by Steve Smith (46 not out) was not enough as Australia, who lead the series 3-1, finished on 278-7.
The victory was England’s first against Australia in six one-day internationals and will reinvigorate a series which had been one-sided so far, and which would have headed into dead-rubber territory had the hosts emerged victorious at the Adelaide Oval.
Instead, the capacity Australia Day crowd were treated to an understated – but intelligent – display of one-day batting by Trott, who guided the tourists to a competitive total playing risk-free strokes at number three, a highly prized attribute ahead of the World Cup which begins next month.
The obdurate right-hander, a constant thorn in Australia’s side during the Ashes, accumulated his second ODI century with quiet efficiency from 126 deliveries, only six of which rattled the boundary ropes.
He was pressed into action with the bat in the third over of the day when captain Andrew Strauss, who won the toss and elected to bat on a glorious track, was caught behind off Brett Lee.
England, who welcomed back James Anderson from a two-week rest and Kevin Pietersen from a groin injury, made an electric start through opener Matt Prior.
The wicketkeeper, dismissed for successive ducks in the previous two matches, was in particularly belligerent mood at the start of his innings, smearing three boundaries off Doug Bollinger’s fourth over as England piled towards three figures inside the first 15 overs.
However, Trott was fortunate to survive a bizarre incident in the 15th over when the ball clattered into his stumps via a ricochet off his pad, but the bails refused to drop.
The ensuing mayhem saw both batsmen at the striker’s end, but Lee’s throw to the vacant bowler’s end was too wide for Michael Clarke to gather, allowing Trott the valuable few seconds he needed to ground his bat to safety.
And to compound Australia’s misery further, Prior brought up his only his third England one-day half century with the very next delivery, his 39th – waltzing down the track to dismiss Lee for six over long-on.
The second-wicket duo put on 113 at a decent rate when Prior, on 67, spooned a Smith long-hop to Xavier Doherty at point in the 23rd over.
Young leg-spinner Smith sent Pietersen and Ian Bell back to the pavilion within three deliveries in the 27th over as England wobbled at 158-4.
Despite the setback, Trott continued to accumulate with ease, running singles and twos with the ever-inventive Eoin Morgan, bringing up his hundred in the 38th over.
But with England poised to mount an all-out assault for a total above 300, Trott’s innings was abruptly ended when a thick bottom edge off David Hussey clattered into his stumps two overs later.
And the part-time off-spinner, who finished with career-best figures of 4-21, then removed Morgan for 24 when the left-hander was caught attempting an outlandish reverse sweep. But a late and spirited rally by Collingwood and Michael Yardy kept England on track for a 300-run target.
Collingwood’s innings of 27 saw him became the first Englishman – and the 58th in world cricket – to score 5,000 ODI runs, while Yardy’s 39 from 27 balls injected fresh impetus into England’s innings.
Australia’s riposte began briskly but lost momentum when Brad Haddin and Shaun Marsh were dismissed in quick succession at 33-2 in the seventh over.
But with Watson, who struck a match-winning 161 in the first match in Melbourne, playing muscular strokes down the ground and manipulating the strike intelligently, the hosts were within sights of chasing down England’s total at a venue where they had not lost a one-day match in three years.
In contrast to Watson’s fluency, Australia captain Clarke was markedly laborious, struggling to pierce the boundary with England’s fielders spread around the ground during the start of the middle overs.
He managed 15 from 27 deliveries before he was bowled playing across the line to a straight delivery from the efficient Collingwood, leaving the hosts at 88-3 in the 17th over.
But Watson’s pugnacious innings ended seven overs later when he edged a wild slash outside off stump from Ajmal Shahzad through to Prior.
Neither Cameron White (44) nor Hussey (28) could find the necessary tempo to push Australia’s innings towards the required run-rate, which was fast pushing towards eight an over by the 34th over.
And inevitably, both Victorians were caught in the deep attempting boundary-hitting exploits off Trott’s innocuous medium pace with pressure rapidly mounting.
Smith’s improvised strokeplay in the final 10 overs gave the crowd something to cheer as the Australia Day fireworks boomed above the Adelaide Oval, while Lee bludgeoned 39 from 32 deliveries.
But with 33 needed off the final over, neither batsmen could provide the additional pyrotechnics to entertain the masses.