The Scotstoun outfit arrived at Arms Park having won all of their six away games in the PRO12, but seeking revenge over a team who had done the double over them in the Heineken Cup group stages.
The Blues showed early adventure and former Pontypridd fly-half Simon Humberstone provided the first points, slotting home a penalty after Glasgow infringed at both scrum and line-out.
The home side lost scrum-half Lloyd Williams to injury midway through the first half, but were let off when Warriors fly-half Ruaridh Jackson pushed a penalty wide.
The Blues then capitalised on a Jackson error when the Scot fumbled a flick inside by home lock Macauley Cook, who had looked suspiciously close to the touchline.
Humberstone grabbed the loose ball and sent No 8 Robin Copeland racing in for a try against the run of play. The former defied the tricky wind to convert.
But the Welsh fly-half was one of the guilty men when Glasgow wing Lee Jones burst through three tackles to reach the line, Jackson's conversion the last kick before the break.
The Blues scored their second try early in the second period when full-back Dan Fish twice retrieved his own kick ahead, hooker Kristian Dacey drove deep into the visitors' 22 and, when the ball squirted loose, replacement scrum-half Lewis Jones dribbled over the line and fell on it while Humberstone added the extras.
Replacement Finn Russell cut the deficit with two simple penalties, but Gareth Davies, on for Humberstone, responded with one of his own.
The Warriors piled on the pressure and were rewarded when substitute flanker James Eddie ploughed deep into enemy territory and crashed over following an attacking scrum five. Russell's conversion brought the scores level with 10 minutes left.
The visitors grabbed their victory when Bennett took a lobbed pass to trot over wide on the right, Russell rubbing it in with a conversion.
Cardiff Blues: Fish, Smith, Tuifua, Hewitt, Robinson, Humberstone, L Williams, G Jenkins, Dacey, Andrews, Cook, Paulo, E Jenkins, Warburton, Copeland. Replacements: R Williams, Hobbs, Palmer, Down, Watts-Jones,
Jones, G. Davies, T Williams.
Glasgow: Matawalu, Jones, Vernon, Bennett, Hughes, Jackson, Pyrgos, Reid, MacArthur, Kalman, Nakarawa, Ryder, Harley, Holmes, Strauss. Replacements: Hall, Yanuyanutawa, Welsh, Gray, Eddie, Cusiter,
Referee: G Clancy (Ireland)