The shark, believed to be a great white, seized Jason Cull by the left leg as he was swimming at Middleton Beach in southwestern Australia on Saturday.
The shark was one of three that swimmers reported seeing at the beach Saturday. Officials closed the beach after the attack.
From his hospital bed where he was treated for deep lacerations, Cull, 37, told reporters Sunday he saw a shadow moving in the water just before the attack and mistook it for a dolphin.
“It was much bigger than a dolphin when it came up,” Cull said. “It banged straight into me – I realized what it was, it was a shark.
“I sort of punched it, and it grabbed me by the leg and dragged me under the water,” he said. “I just remember being dragged backwards underwater. I felt along it, I found its eye and I poked it in the eye, and that’s when it let go.”