On a good night for travelling teams in the second tier – five of the seven matches were won by the visiting club – Fulham, newly relegated from the Premier League – enjoyed a successful journey across the capital.
Fulham were 2-0 ahead inside nine minutes thanks to goals from Aleksandar Mitrovic and teenager Fabio Carvalho.
But Benik Afobe's late header for Millwall ensured a tense finish at the Den.
Stoke stayed second on goal difference after Sam Clucas scored in a 3-1 win over former club Swansea.
Nick Powell put visitors Stoke in front, with Clucas doubling the lead before Leo Ostigard added a third goal, with Swansea substitute Joel Piroe pulling one back for the Welsh club.
Luton were left third after Amari'i Bell's first goal since March 2019 secured a 1-0 win at Barnsley.
Coventry ended the evening in fourth, with Viktor Gyokeres's goal on the stroke of halftime sealing a 1-0 win at Blackpool.
Bristol City were another team to triumph on the road, winning 3-2 at Reading.
Andreas Weimann and Chris Martin put City 2-0 ahead after 14 minutes before Femi Azeez scored for Reading.
Weimann grabbed his second goal early in the second half, but Liam Moore reduced City's lead as the Royals pushed for an equaliser.
Huddersfield were the only home side to win on Tuesday as Sepp van den Berg's own goal sealed a 1-0 victory over bottom club Preston, with Peterborough and Cardiff forced to share the spoils in a 2-2 draw.