Colchester United suffered a first defeat in five at Bristol Rovers, as Elliott Anderson's second-half strike sealed the three points for the home side.
The U's put in a good performance at the Memorial Stadium, but fell short of producing the goods in front of goal that would have seen them go five games unbeaten.
Tom Eastman saw his header cleared off the line a minute after the restart, but the hosts took the ball up the other end and bagged the winner with Anderson's strike finding the top corner.
Wayne Brown made one change from the side that beat Scunthorpe 3-1 on the weekend, with Tommy Smith replaced by Tom Eastman, as the skipper suffered from illness.
The U's made a strong start in an even first half at the Memorial Stadium. Noah Chilvers and Luke Chambers both saw their efforts thwarted as the visitors looked to their noses in front, and quiet the noisy home crowd.
But Joey Barton's side got themselves on top, keeping a lion's share of possession in the first forty-five minutes. Shamal George was forced into a couple of routine saves from Harry Anderson and Anthony Evans, but his goal was rarely threatened despite the pressure.
The first half drew to a close with the U's thinking they had taken the lead when it looked as though James Belshaw had punched the ball over the line from Noah Chilvers' corner. But the referee had brought play to a halt for a foul on the 'keeper with the half time whistle going moments later.
There was just a couple of minutes on the clock in the second half when the U's went closest of anyone. Tom Eastman was the man looking to get his name on the scoresheet. The centre-back peeled off at the back post to nod Noah Chilvers' corner back across goal, only to see a Bristol Rovers man on the line to head the ball away.
And it proved to be a valuable clearance for the home side, as Elliott Anderson found the back of the net for Joey Barton's side two minutes later. Owura Edwards lost the ball on the right wing, gifting the ball to Anderson who struck a sweet effort into the top corner, beyond Shamal George.
Noah Chilvers tried to instigate another second half fightback from his side and looked dangerous on the ball. Luke Hannant did well to backheel the ball to him on the left wing, with Chilvers getting the better of his man before delivering a dangerous cross across the face of goal. But both Edwards and Sears were behind the ball and couldn't take advantage with the home side able to eventually clear.
And the U's kept up the pressure, looking for a route back into the game, but struggled to put much pressure on the home goal.
Bristol Rovers were content to keep a large percentage of possession, as they did in the first half, as Joey Barton's team looked to move into the top seven.
And despite some attacking changes from Wayne Brown to try and find a goal, the U's were unable to find a way through to goal, with Colchester United's four-game unbeaten run coming to an end at the Memorial Stadium.
The U's remain in nineteenth position after results had come in from elsewhere in Sky Bet League Two, sitting on thirty-nine points, still eight points above the drop zone.
Up next, Colchester United host the league leaders, Forest Green Rovers at the JobServe Community Stadium. The Game for Ukraine takes place on Monday evening, with tickets available for just £10 from Col U Tickets.
Bristol Rovers starting XI: Belshaw, Connolly, Finley (Whelan 79'), Collins, E. Anderson (Loft 84'), Coutts, Anderton, Taylor, H. Anderson (Saunders 69'), Evans, Hoole.
Unused subs: Ward, Clarke, Harries, Thomas.
Colchester United starting XI: George, Chambers, Wiredu, Hannant (Akinde 76'), Skuse (Andrews 85'), Sears, Edwards, Chilvers, Kenlock, Eastman, Coxe.
Unused subs: Hornby, Welch-Hayes, Tchamadeu, Miranda, Wright.