The Bracknell and Wokingham Swimming Club member broke his English record that he set in the heats earlier this morning to finish in 2 minutes 08.47 seconds.
First home was world champion Daniel Gyurta in 2:08.32, with USA's Scott Welts third in 2:08.99.
His training partner Michael Jamieson is also through to Wednesday night's final with another fantastic swim in a new British record of 2:08.20.
Willis said: "That is unbelievable. I wasn't nervous, more excited. The crowd really helped me out there. Both me and Michael Jamieson are in the final.
"Just knowing that your mate is there is great, as it is for our coach as well.
"I wanted to be in the final and I've done that. I'll be in a middle lane, enjoying it."