England, set just 215 to win, slumped to 38 for three.
They were cruising to victory during a stand of 115 between Test captain Joe Root (50) and one-day skipper Eoin Morgan (69) that took them to 153 for four under the floodlights.
However, both batsmen were dismissed as England lost three wickets for 10 runs.
But Willey, whose score was his highest for England, ended the match when he drove Australia debutant Michael Neser for six with six overs left.
It was England's spinners who laid the platform for a much-needed victory following a stunning defeat by non-Test nation Scotland in Edinburgh on Sunday.
Off-spinner Moeen Ali, the man-of-the-match, took three for 43 in 10 overs and leg-spinner Adil Rashid two for 36 after Australia captain Tim Paine won the toss.
Only Glenn Maxwell (62) and Ashton Agar (40) offered much resistance during a sixth-wicket stand of 84.
This was Australia's first international series since their tour of South Africa saw former captain Steve Smith and his deputy David Warner -- two of the world's leading batsmen -- given year-long bans by Cricket Australia for their roles in the ball-tampering scandal during the third Test in Cape Town in March.
Top-order batsman Cameron Bancroft, who applied sandpaper to the ball, was given a nine-month ban.
A company tried to cash in by offering spectators sandpaper on their way into The Oval, although stewards tried to confiscate the 'ambush marketing' material.
As well as Smith and Warner, Australia were also without their injured Ashes-winning fast-bowling trio of Mitchell Starc, Pat Cummins and Josh Hazlewood.
But Billy Stanlake gave Australia hope of victory when his second ball of England's reply cut back sharply to bowl Jason Roy for a duck on his Surrey home ground.
Root and Morgan repaired the early damage but neither batsman was there at the finish.
Morgan's 71-ball innings ended when he was caught behind off Andrew Tye, with Root guiding Stanlake to Paine as he opened the face.
Ali holed out before Willey, the son of former England batsman David Willey and Plunkett held their nerve in an unbroken stand of 21.
This match had started with Australia, after complaints about excessive sledging, shaking hands with their England counterparts in a move instigated by Paine.
But their familiar problems against spin, evident in warm-up wins over Sussex and Middlesex where they twice failed to post 300 batting first, resurfaced.
World champions Australia had lost their last three ODI series -- a sequence that included a 4-1 loss at home to England in January.
England, the 2019 World Cup hosts, struggled for early wickets in their stunning defeat by Scotland.
But they reduced Australia to 90 for five inside 20 overs, Ali taking two wickets for three runs in eight balls to dismiss Aaron Finch and Shaun Marsh.
Marcus Stonis, who made a hundred against Sussex, drove Ali for six but on 24 he was caught behind by wicket-keeper Buttler -- the only change to the England side beaten by Scotland -- cutting at Rashid.
Maxwell hit his first ODI fifty in 10 innings.
But his near run-a-ball knock ended when he flicked at paceman Plunkett and Bairstow, running round on the deep square leg boundary, held a good catch.
Agar offered solid support before he was plumb lbw to Rashid and the innings then fell away, with Plunkett taking three for 42.
First Published: June 14, 2018, 1:51 AM IST