Steve Morison played a starring role as Millwall came from behind to beat Scunthorpe and set up a League One play-off final against Bradford City.
The Lions had fallen behind to Ivan Toney’s tap-in, but Morison headed them level on the stroke of half-time and then set up Lee Gregory for 2-1.
Morison’s deflected shot gave the away side breathing space, although Stephen Dawson’s strike set up a nervy finish.
Millwall have reached the final at Wembley for the second season in a row.
Neil Harris’ side will now meet the Bantams on Saturday, 20 May – the same side they beat at the semi-final stage of last year’s play-offs.
Having been held to a goalless draw in the first leg by Scunthorpe, the Lions looked to be falling short when Toney, on loan from Championship title-winners Newcastle, fired the Iron ahead at Glanford Park.
But, having made it 1-1 moments before the break, 33-year-old forward Morison proved the difference between the sides after half-time.
First he superbly cut inside to tee up strike partner Gregory, before scoring his 18th goal of the season to send Millwall to the final.