Atlanta (10-3-3), the Supporters' Shield leader, handed Columbus (7-4-6) its second loss in its last 16 home games. United also snapped the Crew's nine-game unbeaten streak.
Martinez opened the scoring in the 30th minute by heading home Ezequiel Barco's corner kick. Martinez was injured on the play and was replaced at halftime. Martinez has six goals in the last four games.
Villalba, a second-half sub returning from injury, finished off Atlanta's counter attack by rolling a shot under goalkeeper Zack Steffen.
Steffen had a 525-minute shutout streak snapped. The runs was the eighth longest in MLS history.
Copyright 2018 The Associated Press. All rights reserved. This material may not be published, broadcast, rewritten or redistributed.