Bristol City's Sky Bet League 1 title bid suffered a dent as they slumped to a shock 3-2 defeat at relegation-threatened Colchester United.Tom Lapslie put the hosts in front after Frank Fielding fumbled a cross in the third minute and Macauley Bonne nodded home Matthew Briggs' cross 11 minutes later.
And the Robins found themselves three down before half an hour had been played following a stunning volley from Chris Porter.
James Tavernier pulled one back with a freak long-range goal and Aden Flint headed a second but they could not find an equaliser.
Second-placed MK Dons took advantage of City's setback, cutting their lead at the top to just two points after a 3-0 win over Peterborough United.
Will Grigg tapped in the fourth-minute opener from Daniel Powell's cut-back and Ben Reeves added two more before half-time.
Swindon Town lost ground in third place after a 2-1 defeat at home to another struggling side, Crawley Town.
On-loan Ipswich winger Anthony Wordsworth put the visitors ahead, Andy Williams' 20th goal of the season looked to have earned Swindon a point but Gavin Tomlin hit a late winner.
Preston North End boosted their promotion hopes with a 2-0 success over Scunthorpe United courtesy of goals from Daniel Johnson, his first for the club, and Paul Gallagher.
Bradford City climbed into the Play-Off spots at the expense of Doncaster Rovers despite being pegged back 1-1 by Walsall. Billy Clarke fired them ahead but Jordy Hiwula headed an equaliser, while Rovers crashed 3-0 at Port Vale.
Coventry City slipped into the relegation zone after blowing a two-goal lead to draw 2-2 with 10-man Sheffield United.
The Sky Blues appeared to be cruising through two Dominic Samuel goals after Jose Baxter had been sent off in the first half, but Michael Doyle and Jamie Murphy hit back for the Blades.
Yeovil Town stay bottom despite Adam Morgan's stoppage-time penalty earning a 2-2 draw at home to Gillingham while ex-Liverpool full-back Andrea Dossena, David Mooney and Jay Simpson were on target as Leyton Orient boosted their survival hopes with a 3-0 win over Oldham Athletic.
Lewin Nyatanga's header and Paul Rachubka's own-goal gave Barnsley a 2-0 victory at home to Crewe Alexandra, Fleetwood Town beat Notts County 2-1 and Rochdale were 1-0 winners over Chesterfield.