Adams had seen the Bantams dominate the match, but not for the first time this season City learned a single goal lead is not enough and now face a long trip to Exeter next week for a replay.
Theo Robinson gave City the lead in the 28th minute after running on to Charles Vernam’s through pass and sliding the ball past advancing keeper Cameron Dawson.
Robinson also clipped the bar before half-time and Levi Sutton was unfortunate to see his volley from the edge of the box hit the post as Bradford continued to dominate in the second half.
However, Exeter snatched an equaliser in the 86th minute when Josh Key’s cross was bundled home by Sam Nombe.
Adams said: “We were the better team for most of the game. We created most opportunities, we have hit the bar, we have hit the post and the keeper has made very good saves. Unfortunately we haven’t scored enough goals to win. We didn’t finish them off. Now we have to do it again in the replay at Exeter.”
Exeter manager Matt Taylor acknowledged his side were second best and said: “If the score line was 2-0 I could have no complaints, but we showed our resilience and character and our keeper made some good saves.
“I thought we rode our luck in the last half hour to keep the sore at 1-0 and scored from the one piece of good play we had.”
Bradford City: O’Donnell, Threlkeld, O’Connor, Songo’o, Canavan, Foulds, Sutton, Watt, Gilliead, Vernam (Cooke 68), Robinson (Angol 77). Unused substitutes: Hornby (gk), Kelleher, Evans, Staunton, Cousin-Dawson, Scales.
Exeter City: Dawson, Hartridge (Sparkes 73), Ray (Grounds 45), Sweeney, Atangana (Dieng 56), Daniel (Edwards 56), Collins, Caprice (Key 56), Jay, Brown, Nombe. Unused substitutes: Brown (gk), Kite, Taylor.
Referee: S Stokbridge (Tyneside).