The accident occurred about noon Saturday 3 miles outside Bayard in Grant County, KRQE-TV, Albuquerque, reported.
The Silver City Sun-News reported the locomotive left the tracks and dropped 40 to 50 feet into a ravine, while the cars, which were carrying iron, continued down the track before derailing on a curve.
The train was operated by Southwestern Railroad, KRQE-TV said.
The Sun-News said the cause of the accident had not yet been determined. All three victims were in the locomotive.
Scarlett Johansson steps out with fiance after pregnancy reveal
Teacher apologizes for showing sexual image of herself in class