All of the goals came in the first half as Jarrod Bowen deflected in a Markus Henriksen shot to give the home side the lead before Shaun Hutchinson levelled for the visitors. However, Pugh provided the key moment ahead of the interval with a classy finish.
Nigel Adkins’ side showed five changes to the one that started against Brentford at the weekend. David Marshall and Jackson Irvine were fit to play despite picking up knocks against the Bees, but Fraizer Campbell missed out through injury and was replaced by Chris Martin.
Jordy de Wijs and Reece Burke came into the back four along with Eric Lichaj, while Pugh made his first start since arriving on loan from Bournemouth. Stephen Kingsley, Liam Ridgewell, Robbie McKenzie and Evandro were the men to make way.
The Tigers made the brighter start, controlling possession and then taking an eighth-minute lead. Lichaj, Pugh and Kamil Grosicki combined well down the left with a low cross delivered towards Martin. He was denied, but when the ball fell to Markus Henriksen his shot was deflected into the net by Bowen who ran away to claim the goal.
Millwall lost defender Murray Wallace to injury whilst trying to defend that attack and he was soon replaced by Steve Morison.
Outstanding work from Bowen down the right almost created a chance for Martin at the near post but a low cross was cleared before Grosicki curled an effort just wide from 20 yards.
A yellow card went the way of Millwall’s Ben Marshall with half-an-hour played for a challenge on Irvine that thankfully didn’t make full contact.
Millwall were level 11 minutes before the break from their first real chance of the night. Morison’s driven low cross bounced around the six-yard box before falling to Hutchinson to sweep home.
However, the Tigers were back in front in the 42nd minute. Todd Kane’s cross from the right was expertly controlled by Pugh 12 yards out and he produced a calm right-footed finish into the corner of the net.
Bowen had a half-chance early in the second half when he controlled de Wijs’ punt upfield inside the Millwall box but saw a shot blocked before Ryan Tunnicliffe fired an effort inches wide at the other end.
Tunnicliffe was then denied by a fine save from Marshall after the Tigers had struggled to deal with a high, hanging cross.
A first change from Adkins saw Nouha Dicko replace Pugh on the hour and shortly after Millwall’s Jake Cooper was booked for a late challenge on Martin.
Grosicki’s low strike from the edge of the box came back off the base of Jordan Archer’s right-hand upright before rebounding off the goalkeeper and wide before Bowen sent a shot narrowly wide from 18 yards.
A second change for the Tigers saw Ridgewell replace Martin to try and combat any late Millwall pressure which brought a chance for Morison at the back post but he was denied by Marshall. There was also a goal-line clearance as the visitors threatened from a corner.
The Tigers made a final change two minutes from time as David Milinkovic came on for Grosicki and the home side survived some late pressure to claim the three points.
Hull City: David Marshall, Todd Kane, Reece Burke, Jordy de Wijs, Eric Lichaj, Markus Henriksen, Jackson Irvine, Jarrod Bowen, Marc Pugh (Nouha Dicko 60), Kamil Grosicki (David Milinkovic 88), Chris Martin (Liam Ridgewell 78).
Subs Not Used: George Long, Evandro, Robbie McKenzie, Max Sheaf.
Millwall: Jordan Archer, Shaun Hutchinson, Jake Cooper, Jed Wallace, Ben Thompson (Tom Elliott 78), Lee Gregory, Shane Ferguson, Ryan Tunnicliffe, Murray Wallace (Steve Morison 13), Ryan Leonard, Ben Marshall (Aiden O’Brien 70).
Subs Not Used: David Martin, Shaun Williams, Fred Onyedinma, Alex Pearce.
Referee: Mr D. Bond.