Australian opener Aaron Finch scored a century but it was all in vain as England snapped their eight-game losing streak with a 57-run triumph at the WACA Ground on Friday.
Chasing 317 for victory, a second-string Australian outfit were bowled out for 259 in 47.4 overs despite the best efforts of Finch.
The 27-year-old blasted 108 off 111 balls, but he couldn't find a willing ally as England beat Australia for the first time this summer.
With Australia's loss, they drop back from top spot in the one-day rankings just two days after reclaiming the No.1 mantle from India.
Had England lost in Perth, they would have equalled their record losing runs of 10 set in 1993 and 2001.
Instead, their drought-breaking win has given England skipper Alastair Cook some rare joy ahead of Sunday's fifth and final one-dayer in Adelaide.
Before Friday's game, Cook revealed he was keen to stay on as captain of the one-day side despite having reservations about his position just days earlier.
Cook (44), Ben Stokes (70) and Ian Bell (55) laid the platform for England's innings, before wicketkeeper Jos Buttler rammed home the advantage with a dazzling 71 off 43 balls.
Buttler's knock featured six fours and four sixes as Australia's pacemen were carted to all parts of the ground.
Pace ace Mitchell Johnson finished with 0-72 from his 10 overs, while fellow speedster James Pattinson (0-63 off eight) also struggled.
Allrounder James Faulkner claimed 4-67 after picking up two cheap wickets in the final over.
Finch, who scored 121 in the series-opening win in Melbourne, kept Australia's hopes of victory alive as he moved the score to 4-189 in the 36th over.
But when he was caught in the deep, attempting to guide Tim Bresnan over third man, Australia's chances were shot.
Stokes was the hero for England, with the 22-year-old following up his crucial knock with figures of 4-39 with the ball.
Australia entered the match missing a host of their best players, with captain Michael Clarke, wicketkeeper Brad Haddin, allrounder Shane Watson and opener David Warner all rested.
Stand-in skipper George Bailey elected to bowl after winning the toss, but the decision backfired as England raced to 0-73 from their first 10 overs.
Buttler and Eoin Morgan (33) provided the fireworks late in the innings to lift England above 300.
"It's been a long time coming," a relieved Cook said.
"We know the series is gone, but the thought of losing 10-0; the prospect was there."
Australia's stand-in captain Bailey conceded the absence of Clarke, Haddin, Warner and Watson played a role.
Bailey said his decision to bowl first was based on the "tackiness" of the wicket.
"It certainly felt like it swung around a lot, but I don't think we utilised that well at all," Bailey said.
"I think it was probably the worst we'd bowled at the start of a game. It just looked like the bowlers found it a little hard to control."