Bolton Wanderers suffered defeat at home against Oxford United but the Whites remain in the League One play-off places.
The visitors took the lead in the first half when Djavan Anderson finished from close range after Wanderers failed to clear. James Trafford stopped it being two with a point blank save from Elliott Moore's header.
Josh Sheehan nearly levelled before the break but Simon Eastwood's smart reflexes kept him out. After the interval, Ciaron Brown added the visitors' second to put them in the driving seat.