The teams will meet again in Grand Rapids on Friday.
After a scoreless first period, Williams got the Griffins on the board first with a power-play marker 4:35 into the second. It was the seventh time this season Williams has scored the first goal of the game.
After Jonathon Blum pulled the Admirals even just under six minutes later, Williams, Grand Rapids’ leader with 26 goals and 53 points on the year, put his team back in front at 9:08 of the third period. Justin Abdelkader scored an insurance tally at 12:59.
Blum got his second of the night with 4:46 remaining, but the Griffins held on to improve to 5-1-1-1 in their last eight games. Grand Rapids is now 10 points out of the fourth and final playoff position in the North Division with nine games to play.
Milwaukee, which saw its three-game winning streak come to an end, remains fourth in the West Division, seven points up on Peoria.