Middlesbrough fell to a 2-0 home defeat on Saturday afternoon, Oxford United collecting a composed and thoroughly merited victory at the Riverside.
Oxford controlled the opening period without forcing the issue, and their patience was rewarded just before the interval when Aidan Morris broke the deadlock in the 39th minute, finishing to give the visitors a deserved lead at half-time.
The second half brought a flurry of changes from both benches. Michael Carrick introduced Riley McGree around the hour mark, while Oxford made simultaneous alterations, bringing on Aidomo Emakhu and Ole Romeny alongside Jamie Paul Donley. Will Vaulks also entered for the hosts. The substitutions disrupted Middlesbrough's shape rather than improving it, and Cameron Brannagan, one of Oxford's most composed performers throughout, extended the lead shortly after coming on in the 61st minute.
Middlesbrough offered little in response. A further round of changes at 75 minutes, including the introduction of Kaly Sène and Matt Targett, produced no meaningful improvement in the final third. Alex Gilbert was withdrawn twice across that period, suggesting Oxford were managing the game with confidence rather than concern.
Late introductions from Michal Helik and Alan Browne could not alter the outcome. Middlesbrough rarely threatened the Oxford goal and created almost nothing of note across 90 minutes. Oxford, disciplined in and out of possession, deserved every point on offer.
Recap generated from the event timeline. Editorial team review by request. How we use AI.