Warner, who had been marooned in the 90s for over 40 minutes, looked poised on 99 to bring up his century as he faced the last ball of debutant Tom Curran's fifth over.
But Warner top-edged a catch to mid-on and walked off to the jubilation of the England team, only for replays to detect a no-ball for Curran overstepping and Warner was called back to the crease.
The next ball Warner raised his hundred with a flick off his hip and celebrated by leaping into the air and ripping off his helmet to salute the huge Boxing Day crowd at the Melbourne Cricket Ground.
At tea, Steve Smith was on five with Usman Khawaja on 10, and Australia 145 for two after winning the toss. England restricted the home side to just 43 runs from 26 overs in the middle session.
More From This Section
Warner didn't stay at the crease for much longer after his let-off, as he was caught behind off James Anderson for 103.
Warner faced 151 balls and hit 13 fours and a six off Moeen Ali in the over before lunch. It was also Anderson's 100th Ashes wicket.
England also claimed the wicket of Cameron Bancroft in the middle session, leg before wicket for 26 facing Chris Woakes in the 35th over.
Bancroft shared in a 122-run opening stand and was the passive partner as Warner chased runs.
It was the first toss England captain Joe Root has failed to win in the series, and a potentially bad one to lose on a straw-coloured pitch under cloudless skies with a hard day in the field in the offing for England.
The Australian players were wearing black armbands in memory of Thomas Maggs, wicketkeeper Tim Paine's father-in- law, who passed away on Sunday.