Anders Behring Breivik ended his killing spree the moment police approached him, authorities said, handing himself over with his hands raised high above his head.
"If he had come closer or taken longer, he would have been shot," said Anders Snortheimsmoen, the head of the anti-terror unit that arrested him.
Police gave a detailed account of the arrest for the first time, five days after the 32-year-old Norwegian unleashed his massacre on the annual summer camp of the left-wing Labour Party's youth wing.
Breivik has confessed to both the shootings that killed 68 people and a bomb explosion that killed eight at the government district hours earlier in Oslo.
The police operation started off badly. The gunman had already been shooting on the island for an hour when eight members of the anti-terror squad and two local police officers arrived on the shore of the Tyrifjorden lake north-west of Oslo, and jumped into a police boat.
But on their way to Utoya island, the engine stalled, said Haavard Gaasbakk, one of the local police officers.
Stranded on the lake, the police had to summon two private speedboats, take them over and continue toward Utoya divided into two teams of five, Mr Gaasbakk said.
"We can see that shots are being fired on the southern tip of the island. We can see ammunition hit the water, and we hear the cracks," Mr Gaasbakk said.
They landed the boat, and ran about 380 yards, yelling "armed police" to draw the gunman's attention.
"We come to a forested area and the suspect stands there right in front of us with his hands high above his head," Mr Gaasbakk said. The shooter's weapon was behind him.