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.