As a result they were unable to capitalise on their last victory over Edinburgh, though the two losing bonus points do keep them in fourth place in the table ahead of their neighbours.
This was an entertaining game and when Glasgow went 28-15 ahead at the start of the second half they looked fully in control with the pack on top, but from that point on the home side got stronger and stronger.
“Cardiff are a good side at home, they have beaten Leinster this season and only lost once here, but when you have a comfortable lead at 50 minutes you should see that game out,” admitted coach Danny Wilson.
“For fifty minutes it was the best rugby we have played away from home this season, and then for the last 30 it was the worst we have played.
“We need more mental toughness and ruthlessness away from home, though I am not taking anything away from Cardiff who dominated the game for that last 30.”
Cardiff opened the scoring through former Edinburgh wing Jason Harries in the right hand corner, but after that Glasgow took firm control of proceedings with a willingness to run from anywhere and to spread the ball wide.
Centre Kyle Steyn broke free on the edge of his 22, going 40 metres before handing on to Argentinian wing Sebastian Cancelliere who still had a bit to do rounding the defence to go over under the posts.
Fellow centre Sam Johnson wriggled his way over from short range before the forwards took over with a series of penalties ending with a lineout drive finished by hooker Fraser Brown.
Cardiff hit back with left wing Theo Cabango grabbing an opportunistic try when the ball broke loose near the Glasgow line.
It was the Scottish side who finished the half the strongest but they were denied the chance to get the bonus point try from another lineout drive by a crooked throw.
They were not denied for long however, even though it was Cardiff who started the second half strongly. Just when it looked as though they had worked an overlap it went the other way with Cancelliere intercepting and going 70 metres for his second try. Thompson maintained his perfect kicking record with a fourth conversion.
Cancellierre was soon kicking his heels in the sin bin with Cardiff again attacking effectively and the wing again going for the interception. This time he knocked on and conceded both penalty and yellow card.
Cardiff centre Willis Halaholo was able to jink his way over in the corner to bring the home team back within a score, with outside half Jarrod Evans converting from touch.
They would take the lead with just over 10 minutes to go with Cabango getting his second coming off his wing and into midfield with an injection of pace which took him through and past the defenders, Evans adding the conversion to put his side ahead and then sealing victory with a penalty.
Scorers: Cardiff Rugby: Tries – Harries, Cabango (2), Halaholo. Cons – Evans (3). Pens – Evans (2).
Glasgow Warriors: Tries – Cancellierre (2), Johnson, Brown. Cons – Thompson (4)
Cardiff: H Amos; J Harries, W Halaholo, B Thomas, T Cabango; J Evans, L Williams; R Carre, K Myhill, D Arhip, J Turnbull, M Screech, J Botham, J Navidi, J Ratti.
Reps: K Dacey for Myhill 50, C Domachowski for Carre 50, D Lewis for Arhip 50, T Williams not used , E Jenkins for Navidi 52, J Hill not used, G Smith for Thomas 56, M Morgan for Halaholo 71.
Glasgow: J McKay; S Cancelliere, K Steyn, S Johnson, C Forbes; R Thompson, A Price; J Bhatti, F Brown, Z Fagerson, S Cummings, R Gray, R Wilson, R Darge, J Dempsey.
Reps: J Matthews not used, O Kebble for Bhatti 49, M Walker for Fagerson 71, K McDonald for Wilson 52, A Miller for Gray 79, J Dobie for Price 71, D Weir for Thompson 54, S McDowall not used.
Referee: AJ Jacobs (SARU)
Attendance: 6, 275.