An exciting, evenly-contested first half culminated in Posh taking the lead against second-placed Rovers through an own goal.
Peterborough then came close to adding a second before the break when Danny Lloyd nearly made the most of hesitation from Mulgrew and goalkeeper David Raya to poke the ball goalwards, but Darragh Lenihan was able to clear off the line.
The hosts made sure of all three points in injury time as Graham won the ball back and played Dack through on goal, the League One Player of the Season showing composure to slot past O'Malley.
BLACKBURN ROVERS (3-4-3): Raya; Lenihan, Mulgrew, Williams (Whittingham 85'); Bennett, Smallwood, Evans (Bell 85'), Antonsson (Samuel 68'); Armstrong, Graham, Dack
PETERBOROUGH UNITED (3-4-1-2): O'Malley; Hughes, Baldwin, Taylor; Da Silva, Doughty (Anderson 88'), Grant, Edwards; Cooper (Ward 65'); Lloyd (Morias 77'), Marriott