The 37-year-old apparently turned up at his son and daugher’s primary school in Sankt Poelten, west of Vienna, shortly after classes started.
After pulling his son out of class, he took him to the cloakroom where he shot him in the head, according to police.
The boy was rushed to hospital and had to undergo an emergency operation, police said.
“His condition is very critical,” a spokeswoman for Sankt Poelten hospital said.
The father, who fled by car after the shooting, was later found dead in his overturned vehicle north of Sankt Poelten, after police launched a manhunt for him. He had apparently shot himself in the head, police said.
Police of Lower Austria province said the suspect was known to them for cases of domestic abuse and had been banned from returning to the family’s flat a few days earlier.
Emergency workers who were at the school Friday to talk to the children were able to administer first aid to the boy quickly after he was shot but he was already unconscious.
A team of psychologists has been sent to the school to help.