World champions Australia, set 301 to win, were bowled out for 207 with six overs of their innings left.
England spinners Adil Rashid and Moeen Ali shared five wickets between them.
Recalled opener Aaron Finch (53) was the only Australia batsman to pass fifty.
Earlier, England made 300 for eight after winning the toss, with James Taylor (101) compiling his maiden century at this level in an innings featuring fifties from opener Jason Roy and skipper Eoin Morgan.