Pat Lam's side never gave up with Sean O'Brien crossing for his first Connacht try after 75 minutes and John Cooney stepping up to convert. But Ospreys finished with their fourth try and another bonus point win to go top of the PRO12 Rugby table.
Ospreys raced out of the blocks and opened the scoring in the 12th minute when Number 8 Dan Baker charged over after Hanno Dirksen, on his 100th appearance for the club, was stopped just short.
Sam Davies converted and barely two minutes later flanker Olly Cracknell doubled the home side’s lead at the Liberty Stadium as he powered through the Connacht defence.
The Ospreys outhalf was once again on target with the conversion as the Welsh side dominated the early exchanges.
With half an hour played, the Ospreys nearly had their third try as Welsh international Justin Tipuric squeezed over in the corner but the TMO confirmed Matt Healy had taken the flanker into touch.
Half time: Ospreys 14 – 0 Connacht
Davies extended the lead to 17 – 0 with a 30-metre penalty four minutes into the second half with a successful penalty.
A Tom Habberfield break saw Ospreys on their way to their third try as a penalty for the hosts was sent into the corner with prop Nicky Smith eventually driving over from close range.
And it was Davies again from the tee with his third successful conversion of the afternoon.
Connacht replacement Danie Poolman came close to the Ospreys try line with ten minutes to play as he attempted to latch onto John Cooney’s kick but Dafydd Howells’ tackle denied him the score in greasy conditions.
Davies was shown a yellow card for a high tackle on Cooney in the build-up and Connacht’s pressure soon paid off as O’Brien pounced on a loose ball to touch down in the corner.
It was the first try the Ospreys had conceded in the Guinness PRO12 since Edinburgh on December 2nd and it was converted from the touchline by Cooney.
But there was still time for centre Ashley Beck to snatch the bonus point as he dived over with the last play of the game with the missed conversion inconsequential to the result.
Full time: Ospreys 29 – 7 Connacht
Ospreys: Evans; Howells (Biggar 72), Beck, Matavesi (Fonatia 66), Dirksen; Davies, Habberfield (Leonard 65); Smith (Thomas 65) Parry (Otten 66), Fia (Jones 57), Ashley (Beard 73), Jones (capt), Cracknell (Underhill 65), Tipuric, Baker.
Connacht: O’Halloran; Adeolokun, Parata, Robb (Poolman 41), Healy (Gaffney 78); Carty (Blade 31), Cooney; Buckley (Cooney 66), McCartney (Heffernan 55), Bealham (Andress 66), Roux (Stevenson 66), Cannon, O’Brien, Heenan (McKeon 12), Dawai
Referee: John Lacey (IRFU)