Herrera opened the scoring in the 17th minute from 70 yards with a sensational effort which caught out Atlas goalkeeper Jose Hernandez.
However, the game was turned on its head when RSL forward Justin Meram was sent off after 36 minutes for a high foot.
Atlas responded five minutes after the red card and grabbed an equaliser through Edgar Zaldivar.
The winning goal for Atlas came with 20 minutes remaining when Lucas Rodriguez pounced on the rebound to steer the ball into the net.
RSL return to Major League Soccer action on Saturday when they face a tough trip to LA Galaxy.