Mason Bennett’s sixth goal of the season secured Millwall’s 2-1 win at Stoke in the Sky Bet Championship.
Bennett was the beneficiary of Danny Batth’s slip as he tapped in Jed Wallace’s pass after 71 minutes.
Earlier, Jacob Brown had cancelled out Murray Wallace’s opener at the bet365 Stadium.
The Lions’ victory made it a hat-trick of wins on the bounce as they remained within touching distance of the play-offs.
Stoke will likely have to settle for a place in the second tier next season after their own three-match unbeaten streak was ended by Gary Rowett’s men, with Michael O’Neill’s side now 11 points off the top six.
Despite enjoying most of the possession and the chances in the first half, Stoke found themselves behind to Wallace’s first goal of the season.
The defender had already gone close with a header that he glanced wide and set-pieces looked to be Millwall’s most likely route to goal.
A corner fell to Jake Cooper, after being wedged between a group of players, in the box and his hanging cross found George Evans.
Evans cushioned his header into the path of the 27-year-old to scramble home past Adam Davies, but the lead was not to last.
Stoke would have felt aggrieved to be behind after Bartosz Bialkowski had been forced into saves from Brown and Nick Powell.
Powell had been at the heart of all of Stoke’s good play with intricate passing and clever thinking, and his raking pass set Steven Fletcher free five minutes after Millwall’s opener.
The Scot’s scuffed shot found its way through to Brown, who coolly slotted his fourth goal of the season under Bialkowski at the near post.
Rowett’s decision to bring on Maikel Kieftenbeld at the break gave Millwall much more control in the second half and they deservedly got their winner 19 minutes from time.
An innocuous ball down the left looked to be comfortable for Batth, but his untimely slip let in Wallace and Millwall’s star man kept his composure to square the ball for Bennett who could not miss from close range.