Knoxville Police Chief Sterling Owen said teacher Mark Stephen Foster, 48, of Clinton, Tenn., was arrested shortly after the Wednesday morning incident at the Inskip Elementary School, the Knoxville News Sentinel reported.
Owen said Inskip Principal Elisa Luna and Assistant Principal Amy Brace were shot while they were in the school office area, an hour after children were dismissed due to snowy weather.
A University of Tennessee Medical Center spokesman said Luna is in critical condition and Brace was in stable condition.
Owen told the newspaper a revolver thought to used in the attacks has been recovered.
Knox County Schools Superintendent Jim McIntyre told the News Sentinel he was thankful the school's 380 pupils had been dismissed early.
Foster was reportedly arrested in front of a Knoxville motel after his vehicle was hung up in a traffic delay caused by a construction project roadblock.