The shaggy, long-horned cows were first reported missing, along with another one, on Saturday night from a farm about 10 kilometres from Rorschach, a town on the lake.
Police said they received several calls about the cows being seen in various areas east of the town on Sunday morning.
By that time the owner of the cattle was out in pursuit trying to track them down.
A resident phoned police at noon to say the burly animals were trotting along a railway embankment toward a station at Goldach.
Officers then managed to capture one of the animals, while the other two ran off in the direction of Rorschach, police said.
Two cantonal police patrol cars gave chase until reaching the Kabisplatz, a square in Rorschach, when the cows turned abruptly and plunged into the lake.
“We were in the process of walking among friends along a path that runs alongside the port of Rorscharch when we heard a warning resonating from police loud speakers,” a woman told the 20 Minuten newspaper.
“Before we could understand what was going on, the animals arrived at a gallop and threw themselves in the lake.”
Police and rescue officials in two boats managed to lasso the cows as they were swimming in the direction of a lakeside restaurant.
The animals were more than 200 metres from shore, police said.
They were towed to land and tied to a tree until their owner could reclaim them with a cattle truck.