Even in the early morning darkness, firefighter Robert Martin could still see dense black smoke billowing out of a north Minneapolis duplex Saturday as frantic residents hanging from windows screamed for help.

That’s when he saw a couple dangling their 4-year-old boy out the second-floor window.

“Let him go,” he yelled from below before they dropped the child safely into his arms. “It was pandemonium. If they’re hanging out windows, then they’re trapped.”

Flames from the basement fire were just starting to spread to the first floor when firefighters arrived around 5:45 a.m. to the two-story house off the 4400 block of Aldrich Avenue N. Heavy smoke had already blanketed the entire house, though, making residents frantic to escape.

“It was chaos, people screaming and hanging out of windows,” Capt. John Romero said, walking the charred hallways Saturday afternoon. “Everything was moving fast. We were dealing not with minutes, but seconds.”

While his three-person team, the first on the scene, had seen worse fires, he said this one was unusual and could have been very deadly because more than 20 people were packed into the older building, sectioned into eight rental apartments. Martin, the team’s driver, even had to jump in to help, catching the child as the other two firefighters used a ladder to rescue the couple.

Broken glass covered the ground and Angela Cannedy’s husband lay nearby, his head bleeding profusely in the snow after jumping through their first-floor window.

“The smoke and fire was so intense,” she said Saturday, returning to get belongings from the smoke-stained building.

Firefighters say it was only a matter of minutes before flames could have spread to the rest of the house and killed multiple residents. Instead, nine of the more than 20 adults and children were hospitalized with noncritical injuries. Four people were taken to Hennepin County Medical Center from smoke inhalation, while five residents went to North Memorial Medical Center in Robbinsdale with other injuries, like Cannedy’s husband’s head injury.

The incident might have had a different ending had firefighters not arrived in under three minutes and extinguished the fire in 15 minutes.

“If we didn’t get there sooner, there definitely could have been fatalities,” Fire Marshal Perry Ebner said.

While the cause of Saturday’s fire remains under investigation, Ebner said residential fires are up slightly in Minneapolis this year, most related to cooking or, especially in the winter, heating appliances.

As several Red Cross volunteers helped residents move out belongings and get cabs to local hotels for the weekend, Cannedy said she didn’t know what might have caused Saturday’s fire. But, she said, she’s grateful everyone got out alive — a relief the first firefighters on the scene shared.

“It would’ve been disastrous,” Martin said. “[But] we love the ending.”