Cronje sat back for the first two laps, with the leaders setting an erratic pace up front.
Hanging on in the second half, the South African produced a strong surge down the finishing straight to take ninth place in 3:50.70, smashing his personal best my more than four seconds.
Johan Fourie had set the previous national mark of 3:50.82 over the 1.609km distance in Port Elizabeth in March 1987.
Souleiman Ayanleh of Djibouti won the race in 3:47.32, the fastest time in the world this year, while 10 of the 14 men in the field improved their career records.
“I could feel the pace was fast from the beginning and I didn’t want to get too far behind, so I think I managed myself well in not going with the pace too soon and also not getting discouraged before the last lap,” Cronje said.
“I feel I can go faster, but it’s still quite early in the season, so I’m very happy.”
Cronje, who also holds the SA 1500m record, confirmed he would compete in the metric mile at the Diamond League meeting in Rome on Thursday.
“I’m not expecting fireworks in Rome,” he admitted.
“I think travelling back (to Europe) from Eugene will take its toll, but I will go out and run as fast as possible.”
Sprinter Simon Magakwe, the only other South African taking part in Eugene, finished eighth and last in the men’s 100m event.
Magakwe, who set the SA record of 9.98 seconds in Pretoria last month, was slow out the blocks and trailed home in 10.13.
Justin Gatlin of the United States won the race in a world-leading time of 9.76, with five men dipping under the 10-second barrier.
– Sapa
Download our app and read this and other great stories on the move. Available for Android and iOS.