The 37-year-old man was swimming with his two teenage daughters near Weipa when a two-and-a-half metre croc grabbed his arm and hand.
When the crocodile surfaced the man punched it several times until it let go.
He managed to get back onto land, but has two large puncture wounds to his back and about 10 wounds to his wrist and hand.
The attack happened at a popular waterhole at Beening Creek at Napranum, around 6:30pm last night.
Police say the Department of Environment and Resource Management is investigating and the crocodile may be removed.
The attack has renewed calls for crocodiles to be culled around communities on Cape York.
But Peter Graham from the Weipa Town Authority says everyone knows you should not swim in any of the waterways.
"It's something that nobody does here," he said.
"There's just too many of them and at Napranum they've trapped crocodiles in the past.
"They've been stalking the school ... there's just no shortage [them]."
And there is a challenge ahead for a Queensland wildlife officer who needs to find the crocodile.
Nick Rigby from the Department of Environment an Resource Management says the water hole has lots of crocodiles.
"In a situation like this we'll obviously go and have a look. If there is an animal that is behaving suspiciously and does so consistently then we may be able to identify that as the animal," he said.
"Obviously we don't want to be taking crocs out of the wild simply for the sake of it... It has to be the animal that's been involved in the incident."