Urban, 43, teamed up with Amtrak to perform two surprise performances at New York Penn Station as well as Philadelphia's 30 Street Station.
He then sung for 50 competition winners on board the train while it was moving.
Speaking to PEOPLE about the performance, he said: 'I've never performed on a train. I'm not even sure how I'll be able to stand.'
Urban sung a number of his old and new songs before saying to onlookers: 'I want to thank you all for missing your train today.'
Colleen Hansen watched one of the shows in Philadelphia and said to PEOPLE: 'Things like this don't seem to happen much around here. I just texted my friend, I'm about to be five feet away from Keith Urban!'