Leyton Orient extended their unbeaten run in League Two to eight matches thanks to a George Moncur goal and late penalty save from Lawrence Vigouroux.
Richie Wellens made one change to his starting line-up from the 2-0 win over Tranmere as Jayden Sweeney replaced Rob Hunt.
And after both sides observed a minute's silence in memory of Her Majesty Queen Elizabeth II, whose death last Thursday was followed by the postponement of all football on Saturday, the visitors saw Ruel Sotiriou make a great early run before being denied by Jimmy Keohane.
Jimmy Ball was unable to capitalise on a chance at the far post for the home side soon after, with Paul Smyth then sending Tom James down the right before Aidan White recovered well.
Idris El Mizouni then picked out James for a first-time ball into the box, but it was just too high for Smyth, whose pace continued to cause problems.
Scott Quigley fired over from distance for Rochdale, before George Moncur beat two men and saw his shot diverted wide by Richard O'Donnell.
Moncur's sidefooted effort skimmed the top of the net after James had burst through on 27 minutes, then O'Donnell produced a stunning save to tip Sotiriou's top-corner bound shot away.
Omar Beckles headed wide from the resulting corner, but O's took the lead on 35 minutes after a superb move saw Moncur played in on the left hand side to angle a shot past O'Donnell into the top corner.
Smyth was denied by a good low save from O'Donnell five minutes later as the visitors searched for a quick second, with Sotiriou seeing a shot deflected wide just before the break.
But Vigouroux had to make a smart stop to deny Ball within a minute of the restart, as Rochdale looked to reply.
Play was held up after a flare was thrown onto the pitch by home supporters behind Vigouroux's goal, with Charlie Kelman just unable to connect with a fizzing ball across the box from James on 55 minutes.
And Wellens made his first change of the night on the hour, sending Aaron Drinan on to replace Sotiriou, with the substitute denied a goal almost straight away by McNulty's vital tackle.
Devante Rodney then found Quigley on 65 minutes, but his header could not hit the target, and when Rochdale looked to get through on the break soon after Sweeney got back well to head the ball to safety at the far post.
Jordan Brown and Theo Archibald then replaced Darren Pratley and Kelman in a double substitution 20 minutes from time, with O'Donnell doing enough to deny Drinan moments later after a defensive mix-up.
El Mizouni joined Pratley in the book for a foul on Tyrese Sinclair with a quarter of an hour to play, with Craig Clay replacing Smyth in Orient's final change of the night moments later.
And O's dug deep in the closing stages to protect their slender lead, with much of the play in the middle of the park and few chances at either end.
Archibald earned their third yellow card two minutes from time, with Dan Happe producing a vital header to clear a dangerous cross before the match entered five minutes of stoppage time.
Sweeney cut out a threatening through ball in the second minute, but Rochdale were awarded a penalty after a foul on Sinclair.
Vigouroux got down to his right to keep out Quigley's spot-kick, though, to keep O's three points clear at the top of the table, with a home game against Walsall up next on Saturday.
Leyton Orient: Vigouroux, James, Beckles, Happe, Sweeney, Pratley (Brown 70), Moncur, El Mizouni, Smyth (Clay 77), Kelman (Archibald 70), Sotiriou (Drinan 60). Unused subs: Sargeant, Ogie, Duke-McKenna.
Attendance: 2,173 (including 214 Orient fans).
Comments: Our rules
We want our comments to be a lively and valuable part of our community - a place where readers can debate and engage with the most important local issues. The ability to comment on our stories is a privilege, not a right, however, and that privilege may be withdrawn if it is abused or misused.
Please report any comments that break our rules.
Read the rules here