But George Stowers finished off a well-worked Ospreys move early in the second half and after holding out with 14 men following Justin Tipuric's yellow card, Hibbard powered through a series of tackles for a try and Dan Biggar's conversion bounced through off the post for a dramatic win.
O'Driscoll completed 58 minutes on his return from neck and shoulder surgery following Ireland's World Cup quarter-final defeat to Wales in October but it was scant consolation for Leinster who suffered their first defeat since September as the Ospreys climbed to second.
Leinster were ahead after only a minute when Tipuric infringed at the breakdown and centre McFadden kicked the three points.
Dan Biggar responded with a penalty of his own on nine minutes and while McFadden missed the chance to edge Leinster back in front on the quarter hour, he made amends soon after.
With the wind at his back the 25-year-old kicked the RaboDirect PRO12 leaders ahead on 21 minutes before landing a huge penalty five minutes later.
Despite trailing on the scoreboard the Ospreys restricted Leinster's try-scoring opportunities until Richardt Strauss' overthrown lineout bounced up perfectly for fly-half Madigan who raced clear of Hanno Dirksen to score.
McFadden duly converted to put Leinster 13 points clear before Biggar responded with a penalty four minutes before the break to keep the Ospreys in the contest.
Leinster almost increased their advantage straight after the break when Luke Fitzgerald cut through the Ospreys defence but Tipuric recovered in time to tackle the winger before he could reach the line.
McFadden then slotted his fourth penalty of the game before Ospreys worked the ball through nine phases only to give away a penalty deep in Leinster territory.
A Biggar penalty again reduced the deficit and the Ospreys were soon right back in the contest when Dirksen and Ashley Beck combined to release George Stowers for his first RaboDirect PRO12 try.
After Biggar added the extras Leinster responded by replacing Brad Thorn on his first start with Damian Browne and the fresh legs almost helped push the hosts over the whitewash - only for the Ospreys defence to hold them up over the line.
Leinster regrouped and thought they'd crossed for their second try of the night when Heinke van der Merwe ploughed over the line but centre Beck did superbly to lodge his shoulder between the ball and the turf.
O'Driscoll made way for Eoin O'Malley just before the hour mark while Ospreys sent on Grand Slam-winning Wales prop Adam Jones with the game firmly in the balance.
After Leinster prop Jamie Hagan was stretchered off injured, McFadden slotted a further penalty to open up a six-point gap.
Tipuric was then sin-binned for a dangerous tackle but kicking into the wind McFadden's effort from distance fell short.
Leinster failed to capitalise on the man advantage and when flanker Tipuric returned Ospreys snatched the victory as Hibbard bundled over the line and Biggar's kick bounced through off the post to win it.
|Leinster Rugby Score Card|
|Ospreys Score Card|