The Wildcats (7-2, 3-2 Big Ten) have been struggling with their passing game, but had success running the ball. Colter rushed for 166 yards and Venric Mark ran for 162 yards. Mark became Northwestern's first 1,000-yard rusher since Tyrell Sutton in 2006.
Northwestern has won four of its last five against the Hawkeyes (4-4, 2-2), who fell further out of contention in the Big Ten Legends Division. Iowa was hurt by sacks, penalties and lack of execution on offense.
Iowa cut the lead to 28-17 with 6:37 remaining on quarterback James Vandenberg's 1-yard run to cap an 84-yard drive after the Hawkeyes recovered a fumble.
Iowa drove to the Northwestern 24 with 1:44 left, but Vandenberg threw an incomplete pass on fourth-and-2 to end the threat. Vandenberg went 24 for 38 for 214 yards and ran for two touchdowns.
Northwestern has struggled in the fourth quarter, collapsing in losses to Nebraska and Penn State.
Both teams were looking to bounce back from crushing home losses. Northwestern blew a 12-point lead in the fourth quarter against Nebraska, and Iowa was routed 38-14 by Penn State last week.
Northwestern jumped on Iowa early. The Wildcats scored on their opening drive on a 5-yard run by Colter for a 7-0 lead in the homecoming game. He carried the ball five times for 43 yards, including runs of 18 and 20 yards, during the drive.
Iowa answered with a 40-yard field goal. The Hawkeyes reached the NU 28, but Vandenberg fumbled a snap for a loss of 6 yards for third-and-14, and Iowa had to settle for the field goal.
Two plays later, Northwestern turned the ball over, but Iowa was unable to take advantage. The Hawkeyes' B.J. Lowery intercepted Colter's long pass attempt, and Iowa drove to the NU 33, but the Hawkeyes committed a delay-of-game penalty on fourth-and-3 and had to punt.
Northwestern marched 99 yards on its next drive, with Mark running for 72 yards on the first play. Colter later scored on a 2-yard run for a 14-3 lead.
Iowa reached the Northwestern 23 before halftime, but Vandenberg was sacked for a loss of 6 yards on third down. He threw short on fourth down, turning the ball over to Northwestern, which led 14-3 at halftime.
The Wildcats grabbed a 21-3 lead shortly after halftime. Northwestern started at the Iowa 4 after Tyris Jones blocked a Hawkeyes punt and Colter scored his third touchdown on a 4-yard rush.
Northwestern took control on Colter's 47-yard touchdown pass to Christian Jones with 10:43 left in the third quarter.
Iowa scored its first touchdown on Vandenberg's run with 22 seconds left in the third quarter to make it 28-10.
Arizona linebacker Scooby Wright's left knee injury is not season-ending, according to an MRI Wright had after Thursday night's opening win over UTSA, sources told ESPN's Brett McMurphy.
Syracuse starting quarterback Terrel Hunt left the Orange's season opener Friday night against Rhode Island with a lower right leg injury and won't return.
The Mountain West told ESPN's Brett McMurphy that officials correctly ruled the final play that kept Colorado from getting a potential game-tying touchdown against Hawaii before time expired.
ESPN 300 running back Elijah Holyfield, the son of former heavyweight boxing champion Evander Holyfield, has decided to stay home and attend Georgia, he announced Friday.
Miami reserve linebacker Al-Quadin Muhammad has been suspended for the season opener against Bethune-Cookman on Saturday for a violation of team rules, a source confirmed to ESPN.com
All-American defensive end Shawn Oakman and safety Orion Stewart have been suspended for Baylor's season opener Friday against SMU for a violation of team rules, a school spokesman told ESPN.com.