Police first received word of an attack in the town of Kongsberg, south-west of the capital Oslo, at around 18:13 local time (16:13 GMT).
A Danish man aged 37 has been arrested on suspicion of carrying out the attack.
Police believe he acted alone, and will investigate whether it was an act of terrorism, a spokesman said.
Prime Minister Erna Solberg said reports of the incident had been "horrifying".