Paddy Madden curled in a right-footed shot from 14 yards to give the Iron a 12th-minute lead.
The rest of the first half was a scrappy affair on a bobbly pitch where getting the ball under control was not easy.
The second half was much livelier and captain John Lundstram brought the home side level with a driven half-volley from Joe Skarz's left-wing cross in the 52nd minute.
It was Lundstram's first goal of the season and the ex-Everton midfielder was unlucky not to get a second four minutes later with a 20-yard shot which came back off the underside of the crossbar.
Madden was always a threat for Scunthorpe, and goalkeeper Simon Eastwood had to beat out a drive from the dangerous striker, and then saved his header a few moments later.
Luke Daniels' superb point-blank save kept out Liam Sercombe's volley two minutes from time, but Scunthorpe's defence was under severe pressure and, following a corner, Curtis Nelson drove a low 14-yard shot across goal for Edwards to touch home.
Report supplied by the Press Association.
Match ends, Oxford United 2, Scunthorpe United 1.
Second Half ends, Oxford United 2, Scunthorpe United 1.
Substitution, Scunthorpe United. Craig Davies replaces David Mirfin.
Goal!  Oxford United 2, Scunthorpe United 1. Curtis Nelson (Oxford United) right footed shot from very close range to the bottom left corner. Assisted by Marvin Johnson with a cross.
Corner,  Oxford United. Conceded by Jordan Clarke.
Attempt missed. Conor McAleny (Oxford United) right footed shot from outside the box misses to the right.
Attempt missed. Paddy Madden (Scunthorpe United) right footed shot from outside the box is just a bit too high.
Attempt saved. Liam Sercombe (Oxford United) right footed shot from very close range is saved in the bottom left corner.
Conor McAleny (Oxford United) wins a free kick in the defensive half.
Foul by Jordan Clarke (Scunthorpe United).
Joe Skarz (Oxford United) wins a free kick in the defensive half.
Foul by Neal Bishop (Scunthorpe United).
Foul by Curtis Nelson (Oxford United).
Ivan Toney (Scunthorpe United) wins a free kick in the attacking half.
Substitution, Scunthorpe United. Hakeeb Adelakun replaces Stephen Dawson.
Substitution, Oxford United. Kane Hemmings replaces Antonio Martínez.
Attempt saved. Josh Morris (Scunthorpe United) right footed shot from outside the box is saved in the centre of the goal.
Foul by Conor McAleny (Oxford United).
Neal Bishop (Scunthorpe United) wins a free kick in the defensive half.
Substitution, Oxford United. Marvin Johnson replaces Joe Rothwell.
Foul by Conor McAleny (Oxford United).
Murray Wallace (Scunthorpe United) wins a free kick in the attacking half.
Substitution, Scunthorpe United. Ivan Toney replaces Tom Hopper.
Attempt saved. Paddy Madden (Scunthorpe United) header from the right side of the six yard box is saved in the centre of the goal.
Foul by John Lundstram (Oxford United).
Josh Morris (Scunthorpe United) wins a free kick in the attacking half.
Attempt blocked. Antonio Martínez (Oxford United) left footed shot from the left side of the box is blocked.
Attempt saved. Joe Rothwell (Oxford United) right footed shot from a difficult angle on the left is saved in the centre of the goal.
John Lundstram (Oxford United) hits the bar with a right footed shot from outside the box.
Foul by Antonio Martínez (Oxford United).
Murray Wallace (Scunthorpe United) wins a free kick on the right wing.
Goal!  Oxford United 1, Scunthorpe United 1. John Lundstram (Oxford United) right footed shot from the right side of the box to the bottom left corner. Assisted by Joe Skarz.
Foul by John Lundstram (Oxford United).
Tom Hopper (Scunthorpe United) wins a free kick on the right wing.
Second Half begins Oxford United 0, Scunthorpe United 1.
First Half ends, Oxford United 0, Scunthorpe United 1.
Philip Edwards (Oxford United) wins a free kick in the defensive half.
Foul by Tom Hopper (Scunthorpe United).
Joe Skarz (Oxford United) wins a free kick in the attacking half.
Foul by Paddy Madden (Scunthorpe United).
Phil Edwards claimed a stoppage-time winner as Oxford came from behind to beat promotion-chasing Scunthorpe in League One.