Tom James launched an early attack when he collected a kick and raced down the left touchline, just like he did to score the equalising try against the Tigers, but the ball was lost forward before the move reached the halfway line.
After Shanklin made good yards the Dragons conceded a penalty from in front of the posts and Ben Blair kicked the opening penalty goal from 30 metres in the fifth minute.
The Dragons suffered another setback three minutes later when prop Adam Black was yellow-carded after kicking the ball out of a ruck and Blair made it 6-0 with his second penalty.
That lead was cut in half with a dramatic, wind-assisted drop-goal by Jason Tovey from close to halfway.
The Blues were forced into a change after only 20 minutes when Gareth Thomas limped off with a hip injury to be replaced by Richard Mustoe.
Shanklin went close to scoring the first try but was brought down by Tovey just five metres short.
Shaun Connor had a golden opportunity to level the scores but missed a penalty goal after Deiniol Jones was spotted off his feet at a ruck.
It was a few minutes to forget for Connor, who then threw a pass which was picked off by Shanklin.
The Wales centre raced in under the posts for the first try, converted by Blair.
With prop Fao Filise offside in the 22 Tovey put over a penalty to reduce the gap to 13-6 just before half-time.
The Dragons made a key personnel change at half-time with Connor being replaced by James Arlidge.
But after something of an arm wrestle in the opening minutes of the second half Blair kicked a 45m penalty to give the Blues a 10-point lead on 53 minutes.
That was reduced to just seven points when Arlidge kicked a penalty inside the 22 after the Blues had fallen offside, but the kick was cancelled out by a fourth penalty for Blair from an obstruction.
Arlidge failed to respond when he missed on 64 minutes, but as the Dragons continued to try and get on terms James was sin-binned at a ruck and the replacement made no mistake with the penalty to put the Dragons back in losing bonus point territory.
But that point was blown out of the water when Jamie Robinson scored the Blues' second interception try to give the home side a 26-12 victory.
The win was marred just before the final whistle when Shanklin suffered the injury that puts his Lions tour in serious doubt.
Blues chief executive Bob Norster:
"[Tom Shanklin's] taken a nasty clout to the shoulder, they are just assessing him and getting him down to the hospital for an X-ray and we will know a bit more later on. We will make a proper assessment there with the medics.
Cardiff chief unsure over Shanklin injury
"Everybody was biting their finger nails. It was a tough encounter, as was evident with the bumps."
Dragons coach Paul Turner: "We have probably left about 10 points on the table [in terms of] league points.
"We lost the game in the first half. With a gale force wind we didn't play the right way. We threw the interception pass and all of a sudden you are chasing the game.
"We always said we would have to win two of the three [remaining] games."
Cardiff Blues: Blair, G. Thomas, J. Robinson, Shanklin, James, Sweeney, Rees, Jenkins, T. Thomas, Filise, D. Jones, Morgan, Molitika, Sowden-Taylor, A. Powell, Rush. Replacements: Mustoe for G. Thomas (21), G. Williams for T. Thomas (49), Yapp for Filise (68), Rush for A. Powell (60), Davies for Rush (68). Not Used: N. Robinson, Allinson.
Gwent Dragons: Tovey, Wyatt, Gomer-Davies, Smith, Fussell, Connor, W. Evans, Black, Willis, N. Hall, MacDonald, Charteris, Lydiate, L. Evans, Bearman. Replacements: Arlidge for Connor (41), Gustafson for L. Evans (11). Not Used: Walker, Brew, S. Jones, A. Hall, Webb.
This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.