It was all Scunthorpe in the early stages with twin strikers Gary Hooper and Paul Hayes running the visitors' defence ragged.
It was Hayes who put through Hooper after just five minutes for his ninth goal of the season to give Scunthorpe the lead.
Millwall striker Jermaine Easter rattled the bar from close range just three minutes later, but it was Scunthorpe who struck again in the 17th minute when a cross from Hooper was handled in the box by defender Zak Whitbread and Hayes stepped up to net his eighth goal of the season from the penalty spot.
The one-way traffic continued as Scunthorpe looked a class act with Hooper twice and midfield man Matthew Sparrow both going close to adding to the score.
Sparrow did make it 3-0 in the 51st minute after a brilliantly-worked move involving Hayes and Hooper.
Millwall hit back in the 62nd minute through substitute Neil Harris, who capitalised on a mistake by the Scunthorpe captain Izzy Iriekpen.
Seven minutes later Tony Craig reduced the arrears again forcing home a left-foot shot from close range to set up a grandstand finish.
Millwall threw everything forward in search of an equaliser and it almost came in the 75th minute when midfield man Marc Laird rifled in a shot that was brilliantly saved at full stretch by Scunthorpe keeper Joe Murphy.
The result ended Millwall's four-match winning run away from home, while Scunthorpe strengthened their position at the top of the table.
It was Hayes who put through Hooper after just five minutes for his ninth goal of the season to give Scunthorpe the lead.
Millwall striker Jermaine Easter rattled the bar from close range just three minutes later, but it was Scunthorpe who struck again in the 17th minute when a cross from Hooper was handled in the box by defender Zak Whitbread and Hayes stepped up to net his eighth goal of the season from the penalty spot.
The one-way traffic continued as Scunthorpe looked a class act with Hooper twice and midfield man Matthew Sparrow both going close to adding to the score.
Sparrow did make it 3-0 in the 51st minute after a brilliantly-worked move involving Hayes and Hooper.
Millwall hit back in the 62nd minute through substitute Neil Harris, who capitalised on a mistake by the Scunthorpe captain Izzy Iriekpen.
Seven minutes later Tony Craig reduced the arrears again forcing home a left-foot shot from close range to set up a grandstand finish.
Millwall threw everything forward in search of an equaliser and it almost came in the 75th minute when midfield man Marc Laird rifled in a shot that was brilliantly saved at full stretch by Scunthorpe keeper Joe Murphy.
The result ended Millwall's four-match winning run away from home, while Scunthorpe strengthened their position at the top of the table.