Millwall's Tom Bradshaw scored at both ends as Norwich came from behind to triumph at the Den.
The Lions striker opened the scoring with his 13th goal of the season but Jacob Sorensen put the visitors level.
Bradshaw then diverted an Onel Hernandez cross into his own net before Gabriel Sara's screamer made it 3-1.
Zian Flemming headed in a late corner to give Millwall fresh hope but the Canaries clung on to leapfrog their hosts into sixth place.
A sell-out crowd that included Fifa president Gianni Infantino watched as the two play-off contenders traded blows, with Millwall looking stronger in the initial exchanges.