OXFORD United suffered their second successive 1-0 defeat on the road as John Marquis gave Bristol Rovers victory at a scorching Memorial Stadium.
The striker opened his account in blue and white late in the first half and it was enough to clinch the points in temperatures exceeding 30C for the lunchtime kick-off.
Sam Long headed against the crossbar early on and James Henry nodded over shortly after the restart, but chances were few and far between as both teams struggled to find their rhythm.
The result puts Rovers top of Sky Bet League One, until 5pm at least, while United are still waiting for their first away goal of the season.
Karl Robinson made seven changes to the side that started against Swansea City in midweek as he reverted to his line-up for the opening-day defeat at Derby County.
Marcus Browne began in the advanced midfield role, with former Rovers players Billy Bodin and Matty Taylor – who received slightly different receptions from the home fans – on the left and leading the line respectively.
Kyle Joseph was on the bench following his arrival from Swansea City on Thursday, but Josh Murphy again missed out with Robinson revealing the winger could be unavailable for up to four weeks with a hamstring issue.
Lewis Gordon made his home debut for Rovers at left back, with Everton loanee Lewis Gibson among the substitutes after joining yesterday.
The heat contributed to a cagey start, with the only early shot a Cameron Brannagan effort from distance that was straight at goalkeeper James Belshaw.
United were inches away from taking a 15th-minute lead when Long met Henry’s corner with a looping header, but the ball came back off the crossbar.
Simon Eastwood kept it goalless at the other end 60 seconds later as he flew to his left to tip Sam Finley’s curling long-range strike around the post.
Neither side pressed high as they looked to conserve their energy in the heat, with a head injury for Long midway through the half giving both teams the chance to take a drinks break.
The lack of goalmouth action enabled Rovers fans to focus on jeering Taylor, but the other No 9 on the pitch soon had them celebrating.
United switched off as the hosts played a free-kick short to Finley, with the captain clipping a ball in behind the defence. Aaron Collins got there just before Eastwood, setting up Marquis to head into the empty net.
Tempers flared just before the break when Moore hauled the goalscorer down and the two tussled on the floor, with the U’s skipper following Steve Seddon, yellow-carded earlier, into the referees’ notebook.
Taylor was next to vent his frustrations when he went down under James Connolly’s challenge in stoppage-time, with man in the middle Oliver Langford unmoved. The U’s striker would have been through on goal if he stayed on his feet.
United switched to 4-3-3 at the break, with Browne going over to the right and Henry moving alongside Brannagan.
Chances were at a premium for the U’s in the first half, but they missed a golden opportunity seven minutes after the restart.
Taylor collected Browne’s overhit cross and curled the ball towards an unmarked Henry at the back post, only for the midfielder to head over from eight yards.
Rovers looked to slow the game down and made their first substitution just before the hour mark as Jordan Rossiter replaced Glenn Whelan.
Robinson then made a double change 19 minutes into the half when Joseph came on for his debut, replacing Taylor, and Lewis Bate replaced Henry.
There remained very few chances but the substitutions continued on both sides, as last Saturday’s match-winner Tyler Goodrham came on for Bodin as full-time approached.
Joey Barton made his final three changes with 11 minutes left, with United unable to force clear opportunities in the closing stages.
After two late shows in the past week there was hope the U’s would create one more chance, but the best opening fell to Rovers substitute Ryan Loft when he poked the ball straight at Eastwood following a mix-up at the back.
Bristol Rovers (4-2-3-1): Belshaw, Anderson, Hoole, Connolly, Gordon (Gibson 79), Finley (Coutts 70), Whelan (Rossiter 59), Saunders (Grant 79), Evans, Collins, Marquis (Loft 79).
Unused subs: Jaakkola, Kilgour.
Booked: Saunders, Grant.
Oxford United (4-3-3): Eastwood, Long, Moore, Findlay, Seddon (Jones 89), Browne, McGuane, Brannagan, Henry (Bate 64), Taylor (Joseph 64), Bodin (Goodrham 73).
Unused subs: McGinty, Brown, Gorrin.
Booked: Seddon, Moore, Brannagan.
Referee: Oliver Langford (West Midlands).
Attendance: 8,297 (885 visitors).