The Jacks scored three unanswered third period goals to overcome a two-goal deficit and take the lead with less than two minutes remaining in regulation.
But Waterloo tied the game seconds later, then stole the win with a goal just 13 seconds into overtime.
The Lumberjacks are now 16-15-4 on the season, good for 36 points and a fourth-place tie in the USHL’s Eastern Conference.
Muskegon will complete its short two-game road trip on Saturday night against the Des Moines Buccaneers. Faceoff is slated for 8:05 p.m. EST.
“The guys stayed with it tonight and played a good game against a good hockey team,” said Lumberjacks coach Mike Hamilton. “We had chances to be frustrated when calls weren’t going our way, but we kept at it and didn’t get discouraged.”
The Black Hawks opened the scoring at the 14:06 mark of the first period on a goal from Ryan Drkulec. Waterloo increased its lead to 2-0 on a goal by Griffin Ness 52 seconds into the second period.
The Lumberjacks cut their deficit to 2-1 on a Dylan Wendt goal 4:05 into the second period.
The Black Hawks responded at the 9:53 mark with a goal from Ness to take a 3-1 lead. Muskegon responded 14:11 into the second period with a tally from AJ Hodges.
The Lumberjacks trailed 3-2 heading into the third period.
Waterloo regained its two-goal advantage with a goal from Xander Lamppa 1:53 into the third.
The Lumberjacks then exploded with three goals, from Iivari Rasanen at the 12:35 mark, Cameron Berg (17:52) and Danil Gushchin (18:05), to take a 5-4 lead with1:55 remaining .
Waterloo knotted the score when Ness collected his third goal with 1:07 left in regulation.
Wyatt Schingoethe scored the game winner for the Black Hawks 13 seconds into the extra period.
Waterloo outshot the Jacks 51-25.
Jack Williams stopped 45 of 51 shots in net for the Lumberjacks, while Waterloo goalie Gabriel Carriere stopped 20 of 25.