The 17-year-old, from Lower Austria, told police that he had attacked an 18-year-old youth because he “didn’t like demonstrators”, police spokesman Patrick Maierhofer told the Austria Press Agency.
Previously, the 18-year-old victim and witnesses to the attack had identified the youth from photographs.
Some 2,000 people took part in the “Küssen im Prückel” demonstration, after a young lesbian couple were thrown out of the traditional cafe for kissing each other in greeting.
After leaving the protest the 18-year-old victim was walking with two friends through the Wien Mitte shopping centre when he said he became aware that four people were following them.
After going to the toilet he said two of the youths blocked his way, and one of them punched him in the face twice. When he called for help his attackers fled.
The unemployed 17-year-old from Mistelbach was charged with grievous bodily harm. He told police that he had seen a mugshot of himself in the newspaper, but did not turn himself in.
His three companions have not been identified and the 17-year-old said he could not remember who he was with that day. Police said it was not clear if the attack was motivated by homophobia.