The 13-year Test paceman, who turns 37 next February, removed openers Andrew Strauss (12) and Alastair Cook (11) with successive deliveries to send a shiver through the tourists after they had sweltered for 11-1/2 hours in the field in Australia's massive 602 for nine declared on Friday.
It was Australia's highest score against England in Australia for 60 years since Don Bradman's team scored 645 in 1946.
Scorecard of Day 2
Australia had 23 overs at the weary Englishmen and got their rewards to have the tourists at 53 for three in reply and 350 runs from the follow-on target with three days of predicted fine weather left to play.
Ian Bell was not out 13 with big batting hope Kevin Pietersen on six.
McGrath, Test cricket's third-greatest wicket-taker, took his tally to 544 victims to put the early skids under England, who have endured a nightmare start to the defence of the Ashes they took off the Australians in England last year.
Strauss played a dreadful pull shot and skied to deep backward square where Mike Hussey avoided colliding with Brett Lee to take a great running catch.
Lee caught Hussey's spikes cutting his left knee leaving blood on his creams and he left the ground for treatment which didn't require stitches.
Cook, promoted to opener following the departure home of Marcus Trescothick, was out next ball when he edged to Shane Warne for first slip to leave the tourists reeling at 28 for two in the sixth over.
Stuart Clark got the third wicket having Paul Collingwood caught behind for five in the 11th over.
Ricky Ponting was out four runs short of his fifth Test double-century as Australia batted on relentlessly to just beyond 600 before he called a halt at 4:00pm (06:00 GMT) to have a crack at the England top-order.
The Australian skipper, who dominated the England attack for his ninth century in his last 12 Tests, was trapped leg before wicket off seamer Matthew Hoggard for 196.
He faced 319 balls in 463 minutes with 24 boundaries.
It was Ponting's highest score against England, bettering his 156 in last year's third Old Trafford Test.
Ponting is now the sixth highest run-getter in Test cricket with 8,988 runs at 59.13 in his 106th Test.
Michael Clarke, a late replacement for injured Shane Watson, reached 56 before he was out in the last over before tea but England still found it difficult to extinguish the Australia tail.
The Australians added 102 runs for the last two wickets with Brett Lee hitting an unbeaten 43, Stuart Clark 39 with three fours and two sixes and Shane Warne 17.
England had a minor victory dismissing No.7 Adam Gilchrist for a three-ball duck, lbw to Hoggard to continue his below-par scores from last year's Ashes series.
Skipper Andrew Flintoff, by far England's best bowler with 4-99 off 30 overs, earlier sent Mike Hussey's off-stump cart-wheeling for 86 before lunch.
Hussey and Ponting's shared 209 in 257 minutes was the best fourth-wicket Ashes partnership in Australia.
Warne's wicket provided a boost for the dispirited Steve Harmison, who started the day again spraying wides to compound England's woes.
Flintoff significantly left Harmison out of the attack to open the second day, preferring Hoggard and James Anderson with the second new ball.
Harmison, such a dominant figure in England's Ashes triumph last year, was hopelessly out of bowling rhythm with a total of six wides and one no-ball to finish the innings with 1-123 off 30 overs.