Hull City’s six-match unbeaten run away from home came to an end at the hands of play-off chasing Millwall.
Scott Malone’s freak goal and Tom Bradshaw’s fine finish within the space of four second-half minutes shortly after half-time proved decisive despite a late consolation from substitute Tom Eaves.
With Championship safety assured, Shota Arveladze elected to make three changes for City’s penultimate away trip of the season.
Nathan Baxter replaced Matt Ingram in goal, while Ryan Longman and Callum Elder started in the wing-back positions ahead of Lewie Coyle and Brandon Fleming, who was left out of the squad.
The Tigers – hunting a third successive win and league double, against a Lions team chasing the play-offs – had the first big chance at The Den inside 10 minutes.
Neat work down the right saw Longman find the feet of Jones, making a rare run into the box, whose left-footed strike was kept out unconvincingly by Bartosz Bialkowski.
Millwall were almost gifted a 17th-minute opener as Tyler Burey seized upon Elder’s short back pass and rounded the onrushing Baxter, but Elder recovered to head the ball away and prevent a tap-in.
Life on the road has suited City of late, winning three and drawing three of the previous six away matches, and Arveladze’s men were playing with confidence in the South East London sunshine.
Sean McLoughlin’s ambitious long-range effort was routine for Bialkowski and Malone made an important block to thwart George Honeyman after a driving run through midfield from Regan Slater.
The Lions showed their teeth five minutes before the break as Bradshaw’s knock-down broke for Malone, whose low strike across goal was pushed away by the outstretched left hand of Baxter.
The Chelsea loanee, back between the posts for the first time since January, then claimed Danny Ballard’s towering header from Malone’s resulting corner to preserve parity at the interval.
Gary Rowett’s side almost scored straight after the restart as Malone’s dangerous cross was cut out by Greaves, the ball breaking for Benik Afobe, whose drive into the ground was tipped over by Baxter.
City came agonisingly close to taking the lead as Keane Lewis-Potter’s deflected back-post effort from Elder’s corner struck the base of an upright, with Jones’ close-range follow-up repelled by Bialkowski.
Moments after that near miss, the Tigers found themselves behind in unfortunate circumstances on 51 minutes.
The ball was played across to Malone, whose touch was loose, with Richie Smallwood cannoning his clearance against the Millwall man and the ball ricocheting horribly into the bottom corner.
City’s task became tougher four minutes later as Afobe’s flick-on put Bradshaw through one-on-one and the forward finished with aplomb, coolly lifting the ball first time over Baxter.
Allahyar Sayyadmanesh headed Longman’s right-wing cross over as the visitors looked to respond, while Afobe got the better of Greaves before finding the side-netting from a narrow angle.
It was nearly 3-0 on 78 minutes as Danny McNamara’s teasing cross found its way to the back post, where Murray Wallace’s shot was blocked by the legs of Baxter, with Burey’s rebound clipping the top of the bar.
Baxter was twice extended to keep the score at 2-0, first palming away Oliver Burke’s half-volley before tipping over Jake Cooper’s header from the subsequent corner.
The Tigers pulled one back with four minutes remaining as Lewis-Potter’s cross-shot found its way to Eaves, who lashed a fierce right-footed shot into the far corner, but it came too late to inspire a comeback.
Millwall (3-4-1-2): Bartosz Bialkowski; Danny Ballard, Jake Cooper ©, Murray Wallace; Dan McNamara, Billy Mitchell, George Saville, Scott Malone (Shaun Hutchinson 63’); Tyler Burey (Oliver Burke 79’); Tom Bradshaw, Benik Afobe.
Subs not used: George Long, Maikel Kiieftenbeld, Sheyi Ojo, Ryan Leonard, George Evans.
Hull City (3-4-2-1): Nathan Baxter; Alfie Jones, Sean McLoughlin, Jacob Greaves; Ryan Longman, Richie Smallwood ©, Regan Slater (Tom Eaves 71’), Callum Elder (Lewie Coyle 86’); George Honeyman, Keane Lewis-Potter, Allahyar Sayyadmanesh (Marcus Forss 71’).
Subs not used: Matt Ingram, Greg Docherty, Tom Huddlestone, Di’Shon Bernard.
Attendance: 12,776 (623 Hull City supporters).