The 28-year-old miner punched and kicked the crocodile, while at the same time clinging on to mangrove branches and screaming for help.
His cries were heard by a fisherman in a nearby pub who came to his rescue.
Local resort manager Greg Shean said the rescuer whacked the crocodile with a tree branch until it let go and disappeared into the water.
"The man was fishing with a lure and he was casting a lure out into the water when the croc came up from under the water and snapped at his hand," Mr Shean told The Cairns Post.
"The croc managed to snap off his finger but the man was lucky enough to be able to pull his hand away."
But Mr Bairstow then slipped and the crocodile grabbed his legs, trying to pull them into the water, Mr Shean said.
"He grabbed hold of a branch and yelled for help and one of his mates, who was on the pub veranda, heard him and ran down.
"His mate hit the croc over the nose with a big branch."
Mr Bairstow also suffered two broken legs, dislocated joints and puncture wounds, but none of his injuries are life-threatening.
Wildlife rangers in the Gulf of Carpentaria say they will mount a search for the crocodile and try to remove it from the wild.
Signs reading "recent croc sightings" are also being erected in Trunding Creek.