The 20-year-old striker scored from close range in the 73rd minute to cancel out Gary Alexander's opener before hitting a late winner.
Millwall had the better chances of a goalless first half, with Alexander being denied twice early on by smart saves from Scunthorpe goalkeeper Joe Murphy - and they continued to look the more dangerous side after the break.
Careless defending from United allowed Adam Bolder to feed Alexander, who fired in to the bottom corner.
But Scunthorpe levelled when the previously quiet Hooper was the quickest to react after a Grant McCann corner had caused mayhem in the box.
And with two minutes left Hooper found himself in space and calmly chipped past David Forde to take his tally for the season to 19.