M-99 heads north through farmland to the village of Springport where it turns eastward along Main Street as it passes through the town. The highway continues easterly on Eaton Rapids Road before turning northward to cross into Eaton County. Shortly after crossing the county line, M-50 comes in from the southwest to meet up with M-99. The two highways travel together into Eaton Rapids. Together they form Main Street in the city before they separate on the north side of town. M-50 leaves to the northwest as Dexter Road, and M-99 continues to the northeast as Canal and Michigan streets. For the next few miles, the trunkline splits into a divided highway and runs parallel to the general course of the Grand River. M-99 crosses the river southeast of Dimondale after the opposing directions merge back together as an undivided highway. North of the river crossing, M-99 meets I-96 at the latter's exit 101 on the southern border of Lansing.