The home side took an early lead before falling behind 21-17 early in the second half but then they ran in two tries, the final one from John O'Sullivan that gave them a 22-21 lead.
Mark McHugh landed the conversion for a victory that moves his side ahead of Munster in the table.
Stefan Terblance was denied a try by a marevellous Matt Mostyn tackle and Henson then narrowed the gap with his second penalty.
The Ospreys then went into the lead when they scored two tries, from Steve Tandy and James Bater and they went into the break eleven points (18-7) to the good.
Henson increased their lead with an early second half penalty but Connacht came back with a try from Andrew Farley which McHugh converted to leave just a score (21-14) separating the sides.
A 20th minute penalty from McHugh narrowed the gap further and seven minutes later O'Sullivan pounced for the crucial score.
Afterwards, coach Michael Bradley admitted that it wasn't a vintage Connacht performance. "Of course I'm happy that we pulled through after a poor enough opening half. We were ok for the first ten minutes and then we dropped off the pace. We weren't getting to the corners in numbers. They got in for two well worked tries but from our point of view they were soft tries in terms that you'd hope to be able to defend those. So it was bit frustrating for us and we talked about that at half time.
In the second half, the wind at our backs allowed us put an extra man in the defensive system that closed down some of the space for them.
"It was a very scrappy match for both sides the wind was particularly dominant and I think the wind won the game more than anything else.
" We focussed on the maul against the Ospreys last time we played them and we got a return then so we stuck at it this time. But it was messy, certainly unconvincing from both sides but we're very happy with the win, don't get me wrong on that but it wasn't our most vintage performance."