Blackburn ended Millwall's four-match winning run after a dramatic finish at The Den saw the visitors snatch a 2-0 victory with two goals in two minutes.
Millwall captain Shaun Hutchinson deflected substitute Adam Armstrong's cross into his own net in the 86th minute under pressure from Rovers striker Joe Nuttall to give the visitors the lead.
Armstrong, who had only replaced midfielder Bradley Dack in the 74th minute, then wrapped up the visitors' first away win since the start of October with a memorable solo strike less than 60 seconds later.
The win moves Tony Mowbray's side up to 14th in the Championship while Millwall drop to 20th, five points above the relegation zone, despite losing only their second home game in the last 10.
In a scrappy and uneventful opening half, the hosts lost striker Tom Elliott to a suspected wrist injury within three minutes. They also had the only chance of note, as defender Jake Cooper headed wide from a Ryan Leonard corner seven minutes before the break.
Neil Harris' side continued to look most threatening in the air at the start of the second half, with both Aiden O'Brien and Elliott's replacement Steve Morison looping headers wide.
However, it was Leonard's powerful volley from 25 yards on the hour – an effort well saved by Rovers goalkeeper David Raya – that finally brought the visitors to life.
Nuttall's effort from Harrison Reed's deep free kick was deflected wide before makeshift centre-half Jack Rodwell headed wide from subsequent corner.
Then, on 65 minutes, Dack met substitute Ryan Nyambe's low cross with a back heel that was crucially blocked by the Millwall defence.
Millwall's two best chances of the game came when right-back Mahlon Romeo shot powerfully at Raya from 12 yards on 78 minutes, before midfielder Ryan Tunnicliffe wastefully blazed over from a corner that Rovers failed to clear.
The match was decided in the space of two minutes late on, as Rovers produced the game's only moments of creativity to claim the three points.
Armstrong, who appeared to be offside when he crossed into the box, started and finished the move that led to the visitors' opener courtesy of an unfortunate Hutchinson.
Armstrong then latched onto stand-in captain Elliott Bennett's pinpoint through-ball and curled into the bottom corner past Jordan Archer to make it 2-0.
ga('create', 'UA-72310761-1', 'auto', {'name': 'pacontentapi'});
ga('pacontentapi.set', 'referrer', location.origin);
ga('pacontentapi.set', 'dimension1', 'By Press Association Sport staff');
ga('pacontentapi.set', 'dimension2', 'd29b7efd-5f90-468e-8bd7-993367ec6ee8');
ga('pacontentapi.set', 'dimension3', 'paservice:sport,paservice:sport:club-news,paservice:sport:football,paservice:sport:match-reports');
ga('pacontentapi.set', 'dimension6', 'story');
ga('pacontentapi.set', 'dimension7', 'composite');
ga('pacontentapi.set', 'dimension8', null);
ga('pacontentapi.set', 'dimension9', 'sport:football');
ga('pacontentapi.send', 'pageview', { 'location': location.href, 'page': (location.pathname + location.search + location.hash), 'title': 'Blakcburn halt Millwall\u2019s winning run'});