The Department of Primary Industries said the man was swimming at the Sandtrax surf spot on Port Beach in North Fremantle, about 15 kilometres south-west of the CBD, when the attack happened about 2.30pm (5.30pm AEDT) today.
Witnesses in a boat nearby saw the man calling for help and helped him back to the shore.
“We just seen the bloke standing there waving his arms around,” witness Elliot Kane said.
“We’ve punched it over, got him on the back, on the back of the boat.
“And yeah, he was just a bit startled, and not really a good thing to see down here at the beach. But what can you do about it?”
The men on the boat said they later reported the incident to authorities. That report of a bite by a 1.5-metre tiger shark came in about an hour after the attack, prompting warnings to beachgoers.
Swimmers were told to take additional caution in the area surrounding Port Beach and “beach closed” signs were put up in the area.
The swimmer’s condition is unknown.