Jeffrey Becker-USA TODAY Sports

Cade McNamara passed for two touchdowns, Kamari Moulton rushed for a pair of scores and No. 25 Iowa defeated Western Michigan 41-10 at Iowa City on Saturday.

Leshon Williams rushed for 145 yards on 12 carries and had a receiving touchdown for the Hawkeyes (3-0). Moulton gained 50 yards on eight carries, while McNamara completed 9 of 19 passes for 103 yards.

Treyson Bourguet completed 5 of 16 pass attempts for 124 yards and a TD for the Broncos (1-2).

The Hawkeyes led 14-10 at halftime before dominating the second half.

Western Michigan needed only four plays to go 96 yards on their second drive of the game and take the lead in the opening quarter. Bourguet had a 29-yard run to get it going, then found Anthony Sambucci behind the defense along the left sideline on a 64-yard scoring pass.

After a lightning delay, the Hawkeyes had a chance to cut into the deficit before the first quarter ended but Drew Stevens missed a 41-yard field goal attempt.

Iowa got rolling early in the second quarter when Williams cut left and raced 53 yards to the Western Michigan 8. On third down, McNamara completed a 3-yard scoring pass to Diante Vines.

The Broncos regained the lead 10-7 on their next possession. Bourguet's 43-yard pass to Blake Bosma set up Palmer Domschke's 27-yard field goal.

Iowa took the lead 14-10 on McNamara's 25-yard touchdown pass to Williams with 1:29 remaining in the half. That was set up by Cooper DeJean's 18-yard punt return.

Iowa made it 16-10 midway through the third quarter on a safety. The Hawkeyes blocked a punt and the ball bounced out of the end zone.

After the ensuing free kick, Iowa drove 53 yards for its next score. Moulton had carries on the last five plays of the drive, including his 3-yard touchdown. McNamara passed to Erick All for the two-point conversion for a 24-10 advantage.

Iowa's Nick Jackson forced a Bourguet fumble and Jeremiah Pittman recovered at the Western Michigan 17. Moulton scored three plays later from one yard out with 2:10 left in the third.

More must-reads:

TODAY'S BEST
Watch: Oilers chase goaltender Sergei Bobrovsky from Game 4
Dodgers ace leaves game against Royals due to triceps tightness
Pirates place young catcher on concussion IL
Watch: Game 4 of Stanley Cup Final gets off to chaotic start
Rockies 1B, former NL MVP diagnosed with internal oblique strain
NBA insider shares update on J.J. Redick's candidacy for Lakers HC job
Sam Mayer uses overtime restart to win Xfinity Series' return to Iowa
Nationals hurler DJ Herz makes impressive history in third career start
Free-agent DB Stephon Gilmore addresses playing futureĀ 
Report: Oilers open extension negotiations with veteran winger
Tiger Woods makes big admission about his U.S. Open future
Cubs P 'Mike' Imanaga continues hot start vs. Cardinals
Ravens All-Pro safety undergoes minor surgery
Kyle Larson takes pole for inaugural Cup Series race at Iowa
Maple Leafs make major change to coaching staff
Nationals sign OF/DH to minor league contract a day after release
Cubs place lefty starter on 15-day IL
Celtics' All-Defensive guard reportedly could replace Kawhi Leonard on Team USA
Tee Higgins' contract decision adds pressure on Bengals in 2024
Phillies get veteran OF back from IL