Cardiff Blues clung on to hand PRO12 leaders Connacht only their second defeat of the season, winning 20-16 at Arms Park.
Manoa Vosawai's try gave the Blues an early 7-0 advantage, but the visitors went into break 13-10 in front thanks to tries from Ian Porter and Eoin McKeon.
Tom James' effort re-established the hosts' lead in the second half and Rhys Patchell kicked them further ahead.
That proved to be enough to secure the victory, despite Jack Carty's penalty giving the Irish province late hope of snatching the win.
Pat Lam's men have enjoyed an outstanding start to the campaign and their victory over Munster last weekend displayed their improvement.
However, against a Cardiff side that have struggled in 2015/16, they found themselves behind early on as a powerful drive led to Vosawai touching down.
Connacht responded with Matt Healy proving to be particularly prominent and good work from the winger and lock Aly Muldowney allowed Porter to cross the whitewash. The scrum-half was awry with the conversion but their attacking endeavour was soon to be rewarded with another score when McKeon went over.
Patchell's penalty levelled matters but the visitors managed to go into interval ahead through Porter's three-pointer.
Cardiff controlled the initial stages of the second period and, although their full-back missed an attempt to equalise, the pressure eventually resulted in a try.
Good hands close to the opposition line opened the space out wide and James did well to escape the attentions of the defence to touch down.
Patchell's penalty extended the Blues' buffer to seven points before Carty kicked one of his own to make the score 20-16 in the hosts' favour.
Connacht pressed late on, but the home team held on for a crucial win.
For Cardiff Blues:
Tries: Vosawai, James
Cons: Patchell 2
Pens: Patchell 2
Tries: Porter, McKeon
Cons: Porter, Carty
Cardiff Blues: 15 Rhys Patchell, 14 Alex Cuthbert, 13 Rey Lee-Lo, 12 Gavin Evans, 11 Tom James, 10 Jarrod Evans, 9 Lloyd Williams, 8 Manoa Vosawai, 7 Josh Turnbull, 6 Macauley Cook, 5 Lou Reed, 4 Jarrad Hoeata, 3 Taufa'ao Filise, 2 Ethan Lewis, 1 Gethin Jenkins (c).
Replacements: 16 Kristian Dacey, 17 Sam Hobbs, 18 Craig Mitchell, 19 James Down, 20 Cam Dolan, 21 Tavis Knoyle, 22 Garyn Smith, 23 Dan Fish.
Connacht: 15 Tiernan O'Halloran, 14 Darragh Leader, 13 Bundee Aki, 12 Craig Ronaldson, 11 Matt Healy, 10 Jack Carty, 9 Ian Porter, 8 Eoin McKeon, 7 James Connolly, 6 John Muldoon (c), 5 Aly Muldowney, 4 Quinn Roux, 3 Rodney Ah You, 2 Dave Heffernan, 1 Ronan Loughney.
Replacements: 16 Jason Harris-Wright, 17 Conan O'Donnell, 18 Finlay Bealham, 19 George Naoupu, 20 Sean O'Brien, 21 Kieran Marmion, 22 Peter Robb, 23 Rory Parata.
Referee: Andy Brace (Ireland)
Assistant Referees: Neil Hennessy (Wales), Simon Rees (Wales)
TMO: Jonathan Mason (Wales)