A relative of a member of staff at the pub said: "He came in and asked for a drink but said he had no money. Then loads of people came in screaming that there's a baby in the river.
"He sat there and stared, so the police were phoned and he just told a customer that he'd thrown his baby in the river."
Residents reported a huge emergency response including two fire engines, ambulances, multiple police vehicles and a police helicopter.
Some locals reported seeing what they thought was a doll in the water. Detective Superintendent Jamie Daniels, from Greater Manchester Police, said: "This is an incredibly tragic incident that has led to an innocent baby boy losing his life. Our thoughts are very much with his loved ones.
"A murder investigation is under way and we are working hard to piece together the circumstances that led to the baby boy ending up in the water."