The French striker was called off the bench in the 43rd minute for Ikechukwu Uche and made his mark early in the second half after a goalless first period.
Perbet opened the scoring just two minutes after the restart, firing home from Chechu Dorado's pass, before Manu Trigueros doubled the home side's advantage on 55 minutes.
Perbet then added a second to his personal tally and a third for Villarreal with 15 minutes remaining, latching onto a through ball from Jonathan Pereira and slotting past Osasuna goalkeeper Andres Fernandez.
The visitors managed a consolation through Oriol Riera's 87th minute effort, but the result was already safe and Villarreal, who had lost their last outing at Valladolid, secured all three points.
Victory saw Marcelino García Toral's fifth-placed side move onto 40 points, three behind Athletic Bilbao in fourth.
Osasuna stay in 16th, two points and two places above the relegation zone.