"The track was just so dirty that everyone made their mistakes, and I just kind of picked up the pieces," said Armstrong.
"It was just a matter of not making the mistakes, because the track was just so dirty it was unbelievable. Even on the warm-up lap, I had no idea how slippery it was."
The race was soon suspended to retrieve the three cars from the outside of turn two before racing kicked off once again with 12 laps left to go.
From that point onwards it would be a three-car battle for the win between Armstrong, his M2 Competition teammate Pedro Piquet, and Randle.
The trio sat nose to tail for a tense few laps, before Piquet took Randle for second place. This then set up a grandstand finish between Armstrong and Piquet - the pair taking the last-lap board in close proximity.
However despite his best efforts, Piquet couldn't get past - allowing Armstrong to take his second race win of the season and allowing both drivers to close the margin on series leader Richard Verschoor.
"To be honest, if I was in his situation I would've done what he did because there's not a massive difference in points," said Armstrong.
"Look, he'll probably jump up a few spots in the championship, because he took second. It was nerve wracking from my perspective as well, don't worry."
Red Bull Junior driver Verschoor was the best of the rest, finishing fourth, ahead of Enaam Ahmed, Ameya Vaidyanathan, Kami Laliberte, and the second best of the Kiwis Taylor Cockerton.
The third New Zealander on the grid, Brendon Leitch, held a spot in the top four early in proceedings, only to lose out after running wide at turn one after the race restart, then running wide at the carousel. He eventually finished down in 12th.
There are two further races for the series at Hampton Downs tomorrow, with the first scheduled to kick off at 11.00am. The third and final race will follow at 3.05pm, with the winner to be awarded the New Zealand Motor Cup.
Results
1. Marcus Armstrong
2. Pedro Piquet
3. Thomas Randle
4. Richard Verschoor
5. Enaam Ahmed
6. Ameya Vaidyanathan
7. Kami Laliberte
8. Taylor Cockerton
9. Ferdinand Habsburg
10. Keyvan Andres
Points (provisional)
1. Richard Verschoor 452
2. Thomas Randle 400
3. Pedro Piquet 374
4. Marcus Armstrong 348
5. Jehan Daruvala 309
6. Taylor Cockerton 299
7. Enaam Ahmed 271
8. Kami Laliberte 262
9. Brendon Leitch 258
10. Christian Hahn 199