Highway 12 connects several small towns along its 146 km (91 mi) route, and bypasses a short distance from many others.
The section running east from Sunderland became part of Highway 7 before route numbering was introduced in 1925.
[3] The highway continues north, following the eastern and northern shores of Lake Simcoe and bypassing Beaverton while curving to the northwest towards Orillia.
It bypasses south of Orillia, and shares a routing with Highway 11 northwards for approximately two kilometres between interchanges 131 and 133.
Upper Canada Governor John Colborne surveyed the portage in 1830 and ordered it to be widened for wagon use.
As the area was settled and an increasing need for land connection with the south arose, a new road was proposed from Whitby to Sturgeon Bay (near Waubaushene).
[5] The route followed the present-day Highway 12 from Whitby to Sunderland, then travelled east to Lindsay.
on August 17, the majority of the route through Brock, Thorah and Mara Townships was assumed.
On April 1, 1997, the portions of Highway 12 south of Brooklin were transferred to municipal government.
The following table lists the major junctions along Highway 12, as noted by the Ministry of Transportation of Ontario.