Ospreys U16 skipper Daniel Biggar gave his side a 15th minute lead with a penalty, but the Dragons redressed the balance straight from the restart when centre Adam Hughes was sent in at the posts for Danny Ellis to convert. Ellis added a try before the interval, but in the second half it was a different story altogether.
First, Ashley Beck scored a try which Biggar converted and then Dean Williams charged down a clearance kick for his side's second try. Kristian Phillips, Beck and Biggar rounded things off for the Ospreys with three further tries which Biggar converted.
In the U20 final, Sam Kiley bagged the Ospreys opening try, but the Scarlets led 6-5 at the interval courtesy of two of penalties from Rhys Priestland.
The Scarlets extended their lead when centre Johann Taffetsauffer scored a converted try, but the Ospreys struck back when prop Neil White crossed for a try Nicky Roberts duly improved.
Alec Jenkins crossed to make it 18-12 to the Scarlets, but Roberts kicked a penalty and added a try before wing Leigh Bevan made sure with a late try.