"A 16-year-old boy died from his injuries despite all efforts by emergency services," police spokeswoman Jana Kroutilova told AFP.
"The police detained a 26-year-old woman from the (eastern) Ostrava region whose identity is being investigated," she said. Police are also investigating the motive for the attack in the town of Zdar nad Sazavou, about 120 kilometres (75 miles) southeast of Prague.
Kroutilova said a policeman suffered minor injuries but declined to elaborate on the condition of two girls who "are being treated by doctors".
Kroutilova also declined to say whether the woman had taken hostages.
The murder happened at a secondary school focused on teaching economics and business as well as hairdressing and cooking.