Shrewsbury closed the gap on Sky Bet League One leaders Wigan following a 2-1 win at Southend.
The visitors were in front after 18 minutes when defender Ben Coker headed the ball into his own net.
Midfielder Ben Godfrey, on loan from Norwich, made it 2-0 five minutes before half-time.
The Shrimpers reduced the deficit with a header from Ryan Leonard after a corner on 55 minutes – but it proved nothing more than a consolation goal.
Shrewsbury move to within two points of Wigan, who were held to a goalless draw at home by Charlton on Friday night.
MK Dons had two men sent off, but held out to beat Peterborough 1-0.
Defender Joe Walsh saw red for a professional foul on Jack Marriott after only nine minutes.
The 10 men, though, took the lead on 27 minutes through Chuks Aneke.
MK Dons then had striker Osman Sow also dismissed after 34 minutes following a studs-up foul on Posh defender Ryan Tafazolli.
Play-off contenders Blackburn and Scunthorpe drew 2-2 at Ewood Park.
Danny Graham gave third-placed Rovers the lead after six minutes, but Kevin van Veen soon equalised.
Graham struck again two minutes after the restart, but Conor Townsend secured a share of the points after 55 minutes.
Bradford beat Oxford 3-2 at Valley Parade.
Charlie Wyke put the Bantams ahead inside two minutes, before a header from U’s defender Canice Carroll levelled things up on 49 minutes.
Bradford, though, were soon back in front through Shay McCartan and midfielder Timothee Dieng, who nodded in a third on 59 minutes.
Jonathan Obika set up a tense finale with 15 minutes left, before Wyke was sent off in stoppage-time.
At the other end of the table, bottom club Bury lost 2-0 at home to Fleetwood, with a goal in each half from Ashley Hunter and Devante Cole.
AFC Wimbledon snatched a point from a 2-2 draw at Gillingham.
Midfielder George Francomb headed in an own goal after 61 minutes, but Wimbledon were level just five minutes later through a penalty from Lyle Taylor.
Gillingham, though, swiftly regained the lead through defender Max Ehmer, but substitute Harry Forrester equalised with just six minutes left.
Blackpool hit a stoppage-time equaliser to draw 2-2 at home against Plymouth.
The Pilgrims went in front on 39 minutes through Ruben Lameiras, before Graham Carey fired in a fine second goal on the stroke of half-time.
Blackpool pulled a goal back on 55 minutes through Colin Daniel, before substitute Viv Solomon-Otabor struck deep into added time.
Oldham and Bristol Rovers – who play host to Pompey today – drew 1-1 at Boundary Park.
Billy Bodin put Rovers ahead three minutes into the second half, with Oldham equalising on 72 minutes through Craig Davies.
Rotherham won 2-1 at Walsall.
Semi Ajayi gave the Millers the lead with a goal after just 58 seconds.
Walsall, though, were level in the 12th minute through Joe Edwards, before David Ball put Rotherham back in front on 58 minutes.