The Australians, one-up in the series, looked in control at 257 for four nearing stumps, before Swann held a flying catch two-handed at square leg to dismiss the dangerous George Bailey for 53.
Bailey had looked set for a substantial score batting with skipper Michael Clarke before he hooked paceman Stuart Broad to Swann, whose brilliant piece of outfielding swung the pendulum towards England on a first day of thrust and parry.
At the close, Australia, after winning the toss, were 273-5 with Clarke, who boasts a ground average of more than 100, on 48 and Brad Haddin on seven.
It could have been even better for England. Michael Carberry at backward point dropped a sitter off Haddin shortly before the close.
Bailey was in aggressive mood, smashing three sixes, two of them off spinner Monty Panesar and a pull off paceman Broad.
Panesar put down Bailey, missing a sharp caught and bowled chance when the batsman was on 10 and Clarke survived when a flying Joe Root put him down at midwicket off Swann.
England had grabbed three crucial wickets to peg Australia back in the half-hour before tea after the home side made a strong start.
Chris Rogers and Shane Watson put on a century stand for the second wicket before both departed in the space of six balls.
Then, in the last over before tea, recalled spinner Panesar bowled Steve Smith for six to put England on top in a Test they cannot afford to lose in the five-Test series.
Watson once again missed out on a big score after making a solid start when he was caught and bowled by Jimmy Anderson for 51.
The all-rounder looked well set after 160 minutes at the crease before he chipped a return catch low down to Anderson on the bowler's follow-through.
Watson put on 121 runs for the second wicket with Rogers. It was his 21st Test half-century but highlighted his poor conversion rate with just three centuries.
Rogers followed five balls later, attempting to hit Swann through the covers only to be caught behind by Matt Prior for 72 off 167 balls with 11 fours.
It was the seventh time Swann has dismissed left-hander Rogers in Tests, but it was a big improvement for the opener after low scores in the first Test in Brisbane.
Broad made an early breakthrough for England, removing dangerous opener David Warner before lunch.
Warner, who scored a century in Australia's huge 381-run win in the series opener in Brisbane, set off at a cracking pace with 29 off 32 balls before he went after a wide Broad delivery and was caught by Carberry at point.
England made two changes to their side following the departure of batsman Jonathan Trott with a stress-related illness.
Root was elevated to Trott's spot and England gave Durham all-rounder Ben Stokes his first Test cap, while Panesar was included in a twin-spin attack with Swann.
COMMENTS
Comments are moderated and generally will be posted if they are on-topic and not abusive.
For more information, please see our Comments FAQ