Unbeaten on their last three visits to Ashton Gate, Blackpool were in no mood to be rolled over and took control of the second half.
From the start they had been ready to defend in depth and went man to man on the City attackers, who found it hard to score.
City reacted by sending their tall centre-backs, Tamas Vasko and Jamie McCombe, to pressure the Blackpool keeper, Paul Rachubka, at every set-piece situation.
The tactic paid off when the only goal of the game was scored when the keeper, stretching over McCombe, could only fist the ball away as far as Elliott, leaving the midfielder to fire his sixth goal this season.
There could have been a second goal when Lee Trundle on the right snapped a cross towards the centre of goal.
For once Blackpool were wide open but his partner Darren Byfield failed by a pace or two to arrive in time.
From then on, Bristol City struggled as Blackpool first got into the game and then took over.
Their master-stroke was to send on Andy Welsh to open up the right wing and, with the home side slow to counter the threat, he did so superbly.
But for the efforts of Nick Carle, the Australian signed from Turkish football, City would have been in serious trouble.
Even so, they had to thank keeper Adriano Basso who fended a fierce free-kick from Stephen Crainey on to his bar, one of seven Blackpool corners in 20 minutes.
Ian Evatt then went close to an equaliser with a header from another free-kick before City belatedly sent on Liam Fontaine to shut down Welsh.