Match ends, Colchester United 3, Bristol City 2.
Tom Lapslie's first senior goal helped move Colchester out of the relegation zone as they beat leaders Bristol City.
The 19-year-old gave the hosts the lead on three minutes after goalkeeper Frank Fielding spilt Elliott Hewitt's cross.
Macauley Bonne's header doubled their advantage and Chris Porter added a third before the break.
Goals from City pair James Tavernier and Aden Flint set up a tense finish, but the hosts hung on for a valuable three points.
Tavernier's 50th-minute cross eluded Sam Walker to give City a glimmer of hope before centre-back Flint headed in his second goal in two games, but Steve Cotterill's side fell to their second defeat inside a week.
The result sees Colchester move out of the bottom four for the first time since November, while City's lead at the top of League One is cut to two points.
Bristol City manager Steve Cotterill told BBC Radio Bristol:
"It was two halves. The first half we didn't turn up. It was a shocking pitch and we got the ball pinched off us a couple of times.
"We ended up being 2-0 down and then before we knew where we were a third went in.
"It was a horrible pitch. You couldn't play football on it but that's no excuse, really.
"We should have been brighter than that, but we weren't."
- 41HewittSubstituted forMoncurat 68'minutes
- 32LapslieSubstituted forMarriottat 90+1'minutes
- 22AylingSubstituted forLittleat 31'minutes
- 10Emmanuel-ThomasSubstituted forAgardat 46'minutes
- 9SmithSubstituted forWilbrahamat 63'minutes
- Steve Martin
- Shots on Target
Second Half ends, Colchester United 3, Bristol City 2.
Foul by Wade Elliott (Bristol City).
Chris Porter (Colchester United) wins a free kick in the attacking half.
Foul by Chris Porter (Colchester United).
Mark Little (Bristol City) wins a free kick on the left wing.
Substitution, Colchester United. Jack Marriott replaces Tom Lapslie.
Korey Smith (Bristol City) wins a free kick in the attacking half.
Foul by George Moncur (Colchester United).
Attempt missed. Gavin Massey (Colchester United) right footed shot from outside the box is close, but misses to the right.
Corner, Colchester United. Conceded by Joe Bryan.
Attempt blocked. Macauley Bonne (Colchester United) right footed shot from the centre of the box is blocked.
Foul by Aden Flint (Bristol City).
Chris Porter (Colchester United) wins a free kick in the defensive half.
Attempt missed. George Moncur (Colchester United) right footed shot from the right side of the box is close, but misses the top right corner.
Foul by Aaron Wilbraham (Bristol City).
Alex Gilbey (Colchester United) wins a free kick on the right wing.
Corner, Bristol City. Conceded by Macauley Bonne.
Attempt saved. Korey Smith (Bristol City) left footed shot from outside the box is saved in the centre of the goal.
Corner, Colchester United. Conceded by Aden Flint.