Match ends, Oxford United 2, Shrewsbury Town 0.
Oxford chalked up 100 goals for the season in all competitions as they saw off Shrewsbury at the Kassam Stadium to finish eighth in League One.
The Shrews avoided the nine-goal defeat that could have sent them down, with Port Vale's draw at Fleetwood meaning it was the Valiants who occupied the final relegation place.
Two goals in a minute early in the game put the U's in charge.
Centre-half Curtis Nelson ran through on goal from Rob Hall's backheel to hammer past goalkeeper Jayson Leutwiler in the 16th minute to open the scoring.
And in the home team's next attack, Hall turned in Chris Maguire's cross from the left to make it 2-0.
The goals came despite Oxford losing both full-backs, Joe Skarz and Christian Ribeiro, to injuries in the first 13 minutes.
Bryn Morris headed wide from a good position as the Shrews tried to respond, and at the start of the second half both Abu Ogogu and Stefan Payne went close.
Kane Hemmings should have made it three as he beat two defenders in a run through on goal only to screw his shot wide from seven yards.
Match report supplied by the Press Association.
- 2RibeiroSubstituted forCarrollat 13'minutes
- 3SkarzSubstituted forLongat 11'minutes
- 10MaguireSubstituted forHemmingsat 75'minutes
- 2RileySubstituted forSmithat 37'minutes
- 17YatesSubstituted forMcateeat 84'minutes
- 16MorrisSubstituted forDeeganat 74'minutes
- 45PayneBooked at 45mins
- Kevin Johnson
- Shots on Target
Second Half ends, Oxford United 2, Shrewsbury Town 0.
Attempt blocked. Alex Rodman (Shrewsbury Town) right footed shot from the centre of the box is blocked.
Attempt blocked. Alex Rodman (Shrewsbury Town) right footed shot from outside the box is blocked.
Attempt missed. Kane Hemmings (Oxford United) left footed shot from the centre of the box is close, but misses to the right.
Abu Ogogo (Shrewsbury Town) wins a free kick in the defensive half.
Foul by Marvin Johnson (Oxford United).
Attempt missed. Marvin Johnson (Oxford United) left footed shot from outside the box is just a bit too high.
Corner, Oxford United. Conceded by Jayson Leutwiler.
Attempt saved. Josh Ruffels (Oxford United) right footed shot from very close range is saved in the top centre of the goal.
Foul by John Mcatee (Shrewsbury Town).
Joe Rothwell (Oxford United) wins a free kick in the attacking half.
Foul by Junior Brown (Shrewsbury Town).
Marvin Johnson (Oxford United) wins a free kick on the left wing.
Foul by Alex Rodman (Shrewsbury Town).
John Lundstram (Oxford United) wins a free kick in the defensive half.
Attempt blocked. Shaun Whalley (Shrewsbury Town) left footed shot from the right side of the box is blocked.
Substitution, Shrewsbury Town. John Mcatee replaces Ryan Yates.
Attempt saved. Alex Rodman (Shrewsbury Town) right footed shot from the left side of the box is saved in the centre of the goal.
Attempt saved. Stefan Payne (Shrewsbury Town) right footed shot from outside the box is saved in the centre of the goal.