The Himachal Road Transport Corporation bus, carrying nearly 30 people, was on its way from Shimla to Sawerakhud when the accident happened, SP (Shimla) DW Negi said.
Nineteen passengers were killed on the spot while two succumbed to their injuries on way to hospital, he said.
The five injured were admitted to Indira Gandhi Medical College (IGMC) hospital in Shimla, the SP, who visited the scene, said.
All bodies had been recovered from wreckage of the bus, he said adding some were mutilated beyond recognition.
The driver of the bus, who jumped out of the vehicle, was among the injured.
The bodies, which were yet to be identified, have been sent for post mortem.
Chief Minister Virbhadra Singh, who expressed shock over the accident, visited IGMC and enquired about the condition of the injured.
He asked the hospital administration to provide all possible help to the injured.
The cause of the accident is yet to be ascertained but eye-witnesses said it could be due to thick fog that had reduced the visibility considerably.
A magisterial inquiry has been ordered into the accident.
Governor Urmilla Singh and Transport Minister GS Bali also expressed grief over the loss of lives and offered condolences to bereaved families.
In another accident, 55 people were injured when an HRTC bus met with the accident near Mahina village in Theog area, 50 km from Shimla, the police said.

Latest News from Himachal Pradesh News Desk