Saido Berahino's 61st-minute header settled an even affair at the bet365 Stadium on Saturday afternoon as Stoke City defeated Millwall 1-0.
The Lions once again competed against their big-name opponents and created a large amount of chances, but were undone by Berahino in one of a select few Potters attempts.
Millwall boss Neil Harris made two changes to his starting line-up from last weekend's defeat at Preston North End - Shane Ferguson replaced Aiden O'Brien, while Tom Elliott came in for Steve Morison, with both dropping to the bench.
The Lions started much the brighter and, somehow, did not take the lead just two minutes in. Jed Wallace's cross was intercepted by Ryan Shawcross, but with the ball travelling towards goal, Jack Butland was forced into an excellent reflex save. Ryan Tunnicliffe's rebound was blocked behind.
Erik Pieters' had The Potters' first shot minutes later, but it failed to trouble Jordan Archer, making his 150th appearance tor the club.
Millwall were pressing high in the opening 15 minutes and forcing their opponents into mistakes - Lee Gregory charging Jack Butland's kick down and out for a throw-in a fine example. Five minutes later Gregory won Jake Cooper's long ball and laid off to Ferguson, but his inviting cross ended with Elliott committing a foul.
Millwall's 1,450-odd travelling contingent were making themselves heard in the South Stand of the bet365 Stadium in support of their team as the half-hour mark approached, whilst at the other end, the home fans were growing restless. The high press tactic was troubling the hosts and after Jed Wallace charged down another attempted ball forward the winger carved an opening for a cross, but it was blocked.
The Lions were on top and as James Meredith sent Ferguson through on 33 minutes he crossed for Gregory, but his shot was closed down. From there, Stoke had the remainder of the first half, but were unable to find a way past a resolute Lions defence.
The second half was just two minutes old when Tom Ince unleashed a curling effort towards goal, but it went high, wide and not-so handsome. Tunnicliffe tried the same on 50 minutes, but the outcome was repeated.
With 58 minutes on the clock James McClean crossed, but Joe Allen's swipe at thin air fortunately stopped any attempt at the deadlock being broken. The scoring was opened three minutes later, though, as Berahino headed home a cross inside the six-yard box.
Substitute O'Brien made a move down The Lions' left-hand side with 15 minutes remaining, but his cross was tame and easily collected by Butland.
Millwall maintained their search for the equaliser as the game entered the last 10 minutes and were presented with a golden chance as Ferguson swung over a corner, but Cooper got his header wrong inside the six-yard box and sent it over the crossbar.
Gregory hit the ground inside the box on 83 minutes but referee Chris Kavanagh was unmoved in response to any appeal, before Morison agonisingly turned Cooper's cross past the post.
The Lions forced and pushed all the way to the end for the equaliser, going close through Jem Karacan and Morison, before Peter Crouch was well-placed to clear off the line in the 90th minute. O'Brien then forced Butland into a save in the final moment of the match.
Stoke City: Butland, Pieters (Martins Indi 79'), Allen, Williams, Ince, McClean, Shawcross, Berahino (Afobe 76'), Clucas (Crouch 86'), Martina, Woods. Subs not used: Federici, Etebo, Fletcher, Edwards.
Scorer: Berahino 61'
Millwall: Archer, Meredith (O'Brien 71'), Hutchinson, Cooper, J. Wallace, Gregory, Ferguson, Romeo, Tunnicliffe, Elliott (Morison 69'), Leonard (Karacan 88'). Subs not used: Amos, McLaughlin, Webster, M. Wallace.
Booking: Elliott, J. Wallace, Hutchinson
Referee: Chris Kavanagh
Attendance: 25,351 (1,442)