US Highway 31 (US 31) is a part of the United States Numbered Highway System that runs from Alabama to the Lower Peninsula of the US state of Michigan. In Michigan, it is a state trunkline highway that runs along the western portion of the Lower Peninsula, from the Indiana–Michigan state line at Bertrand Township north to its terminus at Interstate 75 (I-75) south of Mackinaw City. Along its route, US 31 follows the Michigan section of the St. Joseph Valley Parkway as well as other freeways and divided highways northward to Ludington. North of there, the trunkline is a rural undivided highway through the Northern Michigan tourist destinations of Traverse City and Petoskey before terminating south of Mackinaw City. Along its route, US 31 has been dedicated in memory of a few different organizations, and sections of it carry the Lake Michigan Circle Tour (LMCT) moniker. Four bridges used by the highway have been recognized for their historic character as well.

The first highways along the route of the modern US 31 corridor were the West Michigan Pike, an auto trail from 1913, and later a pair of state trunklines (the original M-11 and M-58) in 1919. These state highways were redesignated US 31 on November 11, 1926, when the US Highway System was approved. Since then, the highway has been realigned in places. The highway crossed the Straits of Mackinac by ferry for about a decade in the 1920s and 1930s before the Mackinac Bridge was built, connecting to US 2 north of St. Ignace. Later, sections were converted into freeways starting in the 1950s. These segments opened through the subsequent decades with the last one opening in 2022. Future plans by the Michigan Department of Transportation (MDOT) include a bypass of Grand Haven.

Route description Between Lake Michigan Beach and the northern terminus south of Mackinaw City, most of US 31 forms a portion of the Lake Michigan Circle Tour (LMCT) except where the various business loops run between the main highway and Lake Michigan. Additionally, much of the highway from the Indiana–Michigan state line to Ludington is built to freeway standards, with a notable exception being between Holland and Ferrysburg. The remainder of US 31 is a two- or four-lane highway with some sections in cities comprising five lanes. The entire length of the highway is listed on the National Highway System, a network of roads important to the US's economy, defense, and mobility.

St. Joseph Valley Parkway and I-196 US 31 and the St. Joseph Valley Parkway crosses into Michigan from Indiana southwest of Niles and parallels the St. Joseph River as the two run northward through southwest Michigan. The freeway passes through farmland before crossing US 12 at the first of a set of three interchanges located between Niles on the east and Buchanan on the west. US 31 crosses the river north of the interchange with Niles–Buchanan Road. North of the Walton Road interchange, the freeway turns northwesterly to recross the St. Joseph River near Lake Chapin south of Berrien Springs. The parkway curves around the west side of town before crossing the river for a third time. As US 31 continues northward parallel to the river, it enters the eastern fringes of the Benton Harbor–St. Joseph area. The freeway continues north of Napier Avenue and curves to the northwest to an interchange with Business Loop I-94 (BL I-94) and I-94, merging onto the latter. I-94/US 31 runs concurrently on a northeasterly course before meeting the southern end of I-196 in Benton Township.

At this trumpet interchange, I-196/US 31 runs north from I-94 and passes to the west of the Point O'Woods Golf & Country Club. It continues northward in rural Berrien County through farm fields. The trunkline turns northwesterly near the Lake Michigan Hills Golf Course and crosses the Paw Paw River. Past the river, the freeway turns northeasterly and runs roughly parallel to the Lake Michigan shoreline several miles inland. At the community of Lake Michigan Beach, I-196/US 31 meets the northern terminus of M-63 at exit 7, and the LMCT joins the freeway for the first time. North of this interchange, the freeway parallels a county road (A-2, the Blue Star Highway) that is the former route of US 31.

Further north, I-196/US 31 crosses into Van Buren County and assumes the Gerald R. Ford Freeway name. The inland side of the freeway is forested while the lakeward side is predominantly either forest or fields. As it approaches South Haven, the freeway passes near the Palisades Nuclear Generating Station and Van Buren State Park. North of the power plant and park, the freeway turns farther inland to bypass the city of South Haven. There is an interchange on the south side of town that provides access to BL I-196 and M-140. The freeway crosses over M-43 without an interchange and then intersects the other end of the business loop about later. It crosses the Black River near the Van Buren–Allegan county line.

In Allegan County, I-196/US 31 passes a pair of golf courses and continues northward through farm fields. Near the community of Glenn, A-2 crosses over the freeway and runs parallel to it on the east. The two roads trade places again when I-196/US 31 turns northeasterly on the south side of the twin cities of Saugatuck and Douglas. The freeway crosses over a section of Kalamazoo Lake, a wider section of the Kalamazoo River that flows between the two towns. A-2 crosses back to the eastern side of the freeway north of Saugatuck, and I-196/US 31 continues north-northeasterly toward Holland.

On the south side of Holland, US 31 and I-196 separate as the Interstate turns northeasterly around the city to continue to Grand Rapids. US 31 follows the BL I-196 freeway northward into Holland around the north side of the West Michigan Regional Airport. The business loop has an interchange for A-2 (Blue Star Highway) and Washington Avenue before the freeway ends in the southern reaches of Holland. The trunkline then runs as a divided highway northward, bypassing downtown Holland to the east and intersecting M-40. Northeast of downtown Holland, BL I-196 leaves US 31 and the LMCT at an interchange to follow an expressway along the route of Chicago Drive while US 31 turns northwesterly on its own expressway alignment.

West Michigan Northwest of Holland, the highway runs as a four-lane expressway and divided highway parallel, but inland from, the Lake Michigan shoreline. This section of US 31 runs through a mix of farm fields and forests as it runs to the community of Agnew. There, US 31 intersects the western end of M-45 (Lake Michigan Drive) before continuing into the southern end of Grand Haven. In that city, the highway follows a four-lane boulevard with a grass median. On the northern edge of the city of Grand Haven, US 31 crosses the Grand River on a bascule bridge that opens about 450–500 times per year. North of the structure, US 31 transitions into a freeway at the interchange with the western end of M-104 in Ferrysburg. This freeway continues northward through the suburban edges of the Muskegon area and meets the western end of I-96 near the Muskegon County Airport in Norton Shores.

At this interchange with I-96, US 31 has its southernmost business loop as Business US 31 (Bus. US 31) runs westerly and northward into downtown Muskegon. The main freeway continues through the suburban eastern edge of the city through several interchanges, including one with M-46 (Apple Avenue). Just south of the Muskegon River, the business loop merges back into the main freeway. US 31 crosses the river and turns northwesterly through forests. The freeway passes to the east of Michigan's Adventure, an amusement park, and crosses the White River near the communities of Whitehall and Montague; a business loop curves off to the west to connect the two communities with the freeway. In this area, US 31 runs through the southern portion of the Manistee National Forest as well.

As the freeway continues northward, US 31 intersects the western end of M-20 in New Era in Oceana County. The landscape in this area is dominated by forest land as the trunkline crosses the Hart-Montague Trail State Park, a linear state park that follows a bike trail in the area. North of the trail crossing, US 31 has a business spur for Hart that runs east into that town; north of this interchange, the freeway crosses the Pentwater River near the community of Pentwater.

North of Pentwater, US 31 crosses into Mason County and passes Bass Lake and the Ludington Pumped Storage Power Plant, which uses a reservoir next to the freeway to generate electricity. Just north of that reservoir, the freeway turns to the northeast and Ludington's business spur runs off to the northwest. US 31 curves around the east side of Ludington, crossing the Pere Marquette River. Due east of downtown, the freeway ends and US 31 turns east to merge with US 10. The concurrent highways follow a four-lane roadway to Scottville. On the west side of that town, US 31 separates from US 10, turning northward to bypass Scottville.

Northwest Michigan

US 31 runs due north through Northwest Michigan forest land bypassing Freesoil to the west. Northwest of that town, the highway crosses the Big Sable River before entering Manistee County. Across the county line, the trunkline runs northwesterly parallel to Manistee Lake as US 31 enters Manistee. The highway follows Cypress Street to a drawbridge over the Manistee River and then Cleveland Street on the northern side. As the trunkline rounds the northern shore of Manistee Lake, it passes the SS City of Milwaukee, a car ferry preserved as a museum. From there, the highway runs northeasterly, intersecting the western end of M-55 (Caberfae Highway). Next to the Little River Casino, the highway intersects the southern end of M-22 (Orchard Highway), and the LMCT separates from US 31.

The highway continues on a northeasterly course running inland along Chippewa Highway to the community of Bear Lake. US 31 rounds the east side of the community's namesake body of water on Lake Street and exits town on Pleasanton Highway. The trunkline continues northward and northeasterly through Pleasanton and crosses into Benzie County. Over the county line, it follows Benzie Highway northward to an intersection with M-115 (Cadillac Highway). The two merge and run north into Benzonia, following Michigan Avenue in town. Near the south shore of Crystal Lake, M-115 turns westward toward Frankfort and US 31 follows Michigan Avenue into Beulah, running around the eastern end of the lake. Near the eastern end of Platte Lake, US 31 turns to run easterly into Honor before crossing into Grand Traverse County.

Across the county line, US 31 continues eastward, passing north of the community of Interlochen, intersecting the former M-137, which connected to Interlochen State Park. The highway then angles northeasterly north of Duck Lake and south of Silver Lake. A few miles farther east, US 31 meets M-37 at a location known as Chums Corners. The two highways join and run northward through the unincorporated community. It passes Turtle Creek Stadium, the home stadium for the Traverse City Pit Spitters, a minor-league baseball team. From there, US 31/M-37 runs downhill into Garfield Township. In this area, the highway passes through a cluster of retail stores and car dealerships near the Grand Traverse Mall. North of the intersection with 14th Street, the trunkline follows Division Street into Traverse City. From there it runs to the east of Grand Traverse Commons, the former Traverse City State Hospital, before US 31/M-37 meets Grandview Parkway next to the West Arm of the Grand Traverse Bay.