The Robins, who kept a clean sheet for the first time since April 2012, survived some first-half scares against the division's top scorers and took the lead in fortuitous circumstances when Greg Cunningham's hopeful cross found its way into the back of the net.
And 20 minutes after the break, Paul Anderson found the bottom corner to secure a valuable three points in the battle for survival.
The visitors were having all the ball in the early exchanges with Sean O'Driscoll's hosts comfortable dropping deep whenever Watford had the ball.
City, looking for back-to-back victories for the first time since August, began to feel their way into the match and were only denied the opening goal five minutes later by the reflexes of Manuel Almunia.
Centre back Liam Fontaine rose to meet Steven Davies' corner but the former Arsenal shotstopper, at full stretch, scooped the ball out of his top-right hand corner.
Almen Abdi fired over the bar from Jonathan Hoggs' purposeful run and pull-back before Geijo somehow put a stopping header wide from close range after fantastic work from Fernando Forestieri.
The recent signing from Udinese bamboozled the City defence on the right-hand touchline before putting the ball on a plate for Geijo.
With a swirling wind blowing through Ashton Gate the Robins were focusing their attacks down the flanks with Sam Baldock inches away from meeting Brendan Maloney's deep cross and then a Liam Kelly delivery from the left wing was headed wide by Anderson.
Just a minute later it was a delivery from the wing which brought the opener. Cunningham clipped a cross into the box which evaded everyone, including the diving Almunia, and nestled in the bottom corner.
The 21-year-old left-back looked as surprised as anyone as he celebrated his first goal in English football.
The first chance of the second half was created and missed by Baldock. The former West Ham striker flicked the ball over Hall before racing clear only to thrash his right-footed shot over the crossbar.
City had looked a threat from set-pieces all night and it was no surprise when they doubled their lead from a corner in the 65th minute. Davies' deep delivery was knocked down by substitute Marvin Elliott into the path of Anderson and he made no mistake with a low first-time finish.