Former Ottawa County Commissioner Chris Kleinjans will face off against John Wetzel, a business owner from Grand Haven, to represent Michigan's 31st Senate District on Nov. 3.

Kleinjans defeated Keegan Host on Aug. 4 for the Democratic Party, while Wetzel defeated Michael Markey Jr. and Kevin J. Maas for the Republican Party.

Kleinjans, a veteran and director of strategic operations at the Allegan County Community Foundation, secured 75.45% of the vote, according to unofficial results. Host earned 24.55%.

Kleinjans previously served on the Ottawa County Board after winning a special recall election in May 2024, but lost in the general election that November.

"I am deeply humbled and grateful beyond what these mere words can convey," Kleinjans wrote on social media early Aug. 5.

Wetzel won a tightly contested race, earning 40.08% of the vote. Maas finished second with 32.89% of the vote, followed by Markey at 27.02%. Wetzel is the founder Pure POS, Inc. — a company that "now serves hundreds of hospitality businesses across the Midwest."

"Thank you to the people of Ottawa County for placing your trust in me. I am truly humbled and deeply honored by your support," Wetzel wrote in a social media post early Aug. 5.

The 31st Senate District covers portions of counties Ottawa and Allegan, including Holland, Zeeland, Grand Haven, Hudsonville, Holland Township, Zeeland Township, Park Township, Laketown Township, Fillmore Township and Port Sheldon Township.

The region was previously represented by Roger Victory, who was term-limited from running again in 2026.

The contested primary for the 20th Senate District was incredibly close as of early Aug. 5, with 99% of precincts reporting unofficial results.

Republican Chris Moraitis, an attorney from Paw Paw, held a slim lead (42.51%) over Casco Township Treasurer Kenny Clevenger (42.01%), followed by veteran Curtis Clark (15.48%). The difference between first and second was roughly 150 votes.

In November, the winner will face Dale Murney, a retired attorney, court referee and magistrate living in Paw Paw. Murney ran unopposed for the Democratic Party on Aug. 4.

The 20th District covers portions of counties Allegan, Kent, Berrien and Van Buren, including Saugatuck, Douglas, Fennville, Saugatuck Township and Allegan.

More: Holland area election results 2026

Incumbent Mark Huizenga, who's served in the Michigan Senate since 2021, ran unopposed for the Republican Party on Aug. 4.

Meanwhile, State Rep. Carol Glanville (D-Walker) defeated Rickie Kreuzer, executive director of Chosen Family of Michigan, to earn her party's nomination 83.49% to 16.51% — according to unofficial results.

The district covers portions of counties Ottawa and Kent, including Allendale Township, Polkton Township, Tallmadge Township, Wright Township and Coopersville.

— Contact reporter Mitchell Boatman at [email protected].

This article originally appeared on The Holland Sentinel: Kleinjans, Wetzel to square off in Michigan's 31st Senate District