Second-half goals from Ritchie Jones and Craig Forsyth saw Bradford City ease into the Northern Section semi-finals of the Johnstone’s Paint Trophy.
And it extended their unbeaten run in three Cup competitions this season to an impressive nine games – Arsenal at Valley Parade next Tuesday will be knockout game number 10.
City could have scored inside the opening couple of minutes, but home goalkeeper Chris Neal was equal to Alan Connell’s well-struck free kick.
At the other end, Bantams goalkeeper Jon McLaughlin saved well from Calvin Andrew but it was City who looked the most likely to break the deadlock with Forsyth prominent.
He fired narrowly wide from a Connell cross before sending a right-footed effort just over after good work from fellow loanee Blair Turgott as Bradford threatened.
Vale winger Jennison Myrie-Williams had two chances to fire the home side in front towards the end of the first half but was denied by two fine saves from McLaughlin, diving to his left on each occasion.
City could hardly have made a better start to the second half with Thompson racing clear down the left within 70 seconds of the restart and biding his time before picking out Jones who swept home from 12 yards.
Myrie-Williams was booked for a 53rd-minute dive as he was challenged by Carl McHugh inside the City area.
And within a couple of minutes Bradford doubled their lead when Thompson again got free – this time down the right – before unselfishly squaring to Forsyth who found the back of the net.
Thompson had an effort tipped over before a brief flurry from Vale but they could find no way through as McLaughlin denied Myrie-Williams and Doug Loft had an effort deflected wide.
Port Vale: Neal; Yates, McCombe, Chilvers, Loft; Myre-Williams, Morsy, McAllister (Shuker 57), Vincent; Andrew (Taylor 57), Williamson (Dodds 46). Unused substitutes: Davis, Lloyd
Bradford City: McLaughlin; Darby (Doyle 62), Naylor, Good, McHugh; Turgott (G Jones 62), Ravenhill, R Jones, Forsyth; Thompson (Hanson 72), Connell. Unused substitutes: Duke, Wells.
Referee: D Drysdale (Lancs).