Both Marshalltown (4-1-2) and Ames (3-0-2) entered the Thursday match aiming to avoid their first defeat of the season.
The opening half featured skilled play on both sides, with sharp ball movement and strong goalkeeping keeping the match tight.
Ames broke through early — seven minutes in — when Samuel Sadow finished a through ball, slipping a shot past the outstretched hands of the Marshalltown goalkeeper to give the Little Cyclones a 1-0 lead.
Marshalltown responded 12 minutes later. After drawing a foul in the penalty area, Aaron Ordaz Zambrano converted the penalty kick, placing it low to the left to tie the match at 1-1.
The teams remained deadlocked through the remainder of the first half and into the second in a physical contest marked by frequent fouls.
Ames regained the lead with 28 minutes remaining when Gavin Murphy lifted a shot over the goalkeeper to make it 2-1.
The Little Cyclones controlled possession late, keeping the ball away from Marshalltown to preserve the win.
Next time: Ames will travel to West Des Moines for the Valley Invite and face Ankeny at 1:30 p.m. Saturday.