Peterborough United suffered a second successive Sky Bet League One defeat as two goals in the first half earned Rochdale all three points at the ABAX Stadium.
Former Posh winger Nathaniel Mendez-Laing was among those to find the back of the net as Keith Hill's men kept up their play-off push with a 2-1 victory.
Mendez-Laing was denied a goal inside the opening three minutes as he beat the offside trap, goalkeeper Ben Alnwick making a smart save with his legs.
Marcus Maddison produced a fine run at the other end, shifting the ball onto his right-foot, only to fire inches past the far post.
The deadlock was broken on eight minutes as a cross from the left was side-footed home from close-range by Joe BUNNEY completely unmarked and unchecked in the six-yard box.
Jon Taylor was denied by a fine stop from Josh Lillis on 11 minutes, the keeper also doing well to smother the rebound from a tight angle by the unfortunate Nichols.
Mendez-Laing saw a curler drift just wide of the target after cutting inside onto his right-foot on 18 minutes as Dale threatened a second goal.
Jack Baldwin tested goalkeeper Lillis from fully 35-yards, the keeper punching the ball clear with some difficulty. However, moments later, a Baldwin slip let in Bunney down the right, his shot was blocked on the line by Bostwick, but fell kindly for MENDEZ-LAING who bundled the ball home from close-range.
Posh halved the deficit on 34 minutes and it was a superb goal, not just the strike from Michael SMITH, but also the interplay that led to the shooting opportunity which the Northern Irishman dispatched into the bottom corner.
Less than 60 seconds after the goal, Maddison found himself baring down on goal in the wide area, but he appeared to be hacked down by Allen only for the official to wave away the protests and give no foul.
Beautyman was denied by Lillis on 52 minutes after an exclelent slide-rule pass from Bostwick before Rafferty went into the book for fouling Angol. Alnwick produced a fine stop to claw away a powerful header from Bunney on 57 minutes as Posh prepared to make changes.
Martin Samuelsen and Erhun Oztumer were those changes chosen with Taylor and Beautyman withdrawn. Lillis did well to beat away a fierce Forrester drive from 25-yards after excellent footwork from substitute Samuelsen.
Shaquile Coulthirst replaced Andrew Fox in the final change made by Graham Westley. On 81 minutes, a raking pass from Oztumer picked out Nichols, but Lillis made a brave stop at the feet of the former Exeter City man.
Nichols limped out of the action with five minutes remaining, leaving Posh to conclude the contest with 10-men with all three substitutions completed.
Posh: Alnwick, Smith, Baldwin, Taylor (sub Samuelsen 61min), Bostwick, Maddison, Beautyman (sub Oztumer 61min), Fox (sub Coulthirst 78min), Nichols, Angol, Forrester. Unused subs: Tyler, Almeida Santos, Gillett, Williams.
Rochdale: Lillis, Rafferty, McNulty, Eastham, Lancashire, Lund, McDermott (sub Holt 68min), Mendez-Laing (sub Vincenti 68min), Allen, Rose, Bunney (sub Syers 85min). Unused subs: Collis, Cannon, Camps, Syers, Kennedy.
Half-time: Peterborough United 1-2 Rochdale
Full-time: Peterborough United 1-2 Rochdale
Attendance: 4,785 (199 Rochdale fans)