Ospreys flanker Marty Holah's path is blocked against Leinster
Leinster moved seven points clear of the Ospreys at the top of the Magners League after winning the battle of the top two at the RDS.
Isa Nacewa's try put Leinster ahead before Dan Biggar scored a try to go along with three penalties to help the Ospreys into a 16-10 lead at half-time.
Leinster dominated the second half as the Ospreys tired.
Shaun Berne burst through for a coverted try before McFadden kicked over a late penalty for the hosts.
The Welsh side dominated the majority of the opening 40 minutes and only dogged Leinster defence kept the margin between the sides at the break to six points.
Leinster opened the scoring on 12 minutes with Nacewa intercepting a pass close to his own line before sprinting almost the length of the pitch to touch down.
McFadden added the extra points but Biggar responded with a penalty before McFadden kicked over for three points.
Scrum V analysis: Leinster 20-16 Ospreys
Biggar scored his second penalty with an excellent kick from almost halfway as the Ospreys took a firm grip of affairs.
Leinster repulsed wave after wave of Ospreys attacks and Biggar failed with an attempted drop goal.
The Ospreys finally made their possession count after 32 minutes when Biggar spotted a gap and squeezed through for the try, which he duly converted.
Biggar sent over another penalty three minutes later while the half finished with Leinster on the attack for the first time.
Skipper Jones proud of Ospreys
Leinster maintained the momentum at the start of the second half and McFadden wasted a penalty attempt before Leinster went over for a second try in the 51st minute.
A line-out move ended with Berne bursting through a gap and touching down before McFadden's conversion edged Leinster ahead.
The Ospreys, playing their third game since last Saturday, were beginning to tire and only resolute defending kept Leinster out.
McFadden dragged another penalty wide before a Berne drop-goal effort was ruled out after the video umpire decided it was too close to call.
Ospreys lock Ian Gough was sinbinned for a high tackle on Berne on 74 minutes and from the resulting penalty McFadden kicked the ball between the posts.
The visitors offered little in attack and while beaten they managed to secure a bonus point.
Leinster: G Dempsey, S Horgan, F McFadden, G D'Arcy, I Nacewa, S Berne, E Reddan; C Healy. J Fogarty, M Ross, L Cullen (cpt), N Hines, K McLaughlin, S Jennings, J Heaslip. Replacements (from): R Strauss, S Wright, M O'Kelly, S Keogh, P O'Donohoe, E O'Malley, A Conway, S Keogh.
Ospreys: Lee Byrne; Nikki Walker, Sonny Parker, Andrew Bishop, Shane Williams; Dan Biggar, Jamie Nutbrown; Paul James, Ed Shervington, Adam Jones, Ian Gough, Alun Wyn Jones, Jerry Collins (capt), Marty Holah, Filo Tiatia. Replacements: Scott Baldwin, Craig Mitchell, Ian Evans, Ryan Jones, Mike Phillips, James Hook, Gareth Owen.
Bookmark with:
What are these?