A defiant century by young opener Alastair Cook kept the tourists in the match and with one day still to play, England were 265 for five in their second innings on Sunday, still needing another 292 for an incredible win.
Their only other hope to keep the series alive is to bat out the final day and force a draw.
Kevin Pietersen carried English hopes of saving the series and was not out on 37, with captain Andrew Flintoff having just joined him at the crease on two.
Just when it seemed England would go into the final day with seven wickets in hand after six hours of gritty batting, the determined Cook fell in the third last over of the day as McGrath (2-50) had him caught behind for 116.
England sent in nightwatchman Matthew Hoggard, but the move backfired when he was bowled second ball by a McGrath yorker.
Australia are already 2-0 up in the five-Test series and victory here would see them regain the Ashes they lost in 2005.
A little worryingly for the Australians, an early shower or two is forecast for the final day.
Cook, who scored a double century for Essex against the touring Australians in 2005, delivered on his pre-match promise to make runs and notched his fourth Test century and his first against Australia.
The left-hander showed great powers of concentration to cope with a searching and extended examination from champion leg-spinner Shane Warne on another hot and humid day.
He also endeavoured to leave the balls just outside his off stump from fast bowlers, which have been his downfall this series, preferring to accumulate runs mainly through the leg side.
Cook finally reached triple figures after 335 obstinate minutes and 257 balls at the crease, having hit only eight boundaries.
It was a richly deserved century but he did enjoy some luck, being dropped by Matthew Hayden at first slip from the part-time off-spin of Andrew Symonds on 83.
He survived a confident lbw appeal padding up to Warne on 72, while a pull shot off Warne just cleared McGrath at deep mid-wicket after the veteran Australian paceman misjudged the flight.
Just when it seemed he would bat through the day he pushed forward and got an outside edge through to Adam Gilchrist, ending 390 minutes and 290 balls of defiance.
Cook's 170-run second-wicket partnership with Ian Bell raised English hopes in the first two sessions.
England resumed at 19 for one and the pair defied the Australian attack for more than half the day.
Bell was denied a century when he became Shane Warne's 696th Test wicket from the last ball of the day's 51st over.
The diminutive right-hander had batted with a perfect mixture of patience and strokeplay to frustrate the Australians, but got under a fullish delivery from Warne and drove it straight to Justin Langer at short mid-off.
He had been at the crease for 234 minutes, faced 163 balls and hit eight fours and two sixes.
Bell generally played Warne well, using his feet when appropriate and twice lofting the leg-spinner straight down the ground for six.
He did enjoy a life on 73 when Gilchrist grassed a catch off the bowling of Brett Lee.
Paul Collingwood made just five before being caught behind from the under-utilised Stuart Clark.
There was little assistance from the wicket for Australia's fast bowling trio of Lee, McGrath and Clark.
Warne extracted plenty of turn and bowled unchanged from the northern end between lunch and tea, but endured a generally frustrating day.