The Turin giants were shaky at the back but secured a first win in four matches thanks to Vlahovic, who moved to the top of the league goalscoring charts ahead of Ciro Immobile.
Massimiliano Allegri’s side are unbeaten in 13 Serie A games, since a 1-0 loss to Atalanta in November.
“An individual can never make the difference without a team behind him,” the 22-year-old Vlahovic told DAZN. “If we stay united and all work together, we can achieve great results.
“I was not accustomed to all this attention, as the coach also said, but with the right mindset, focus and concentration, you can do anything.”
Fourth-placed Juve are also locked in a battle with Atalanta, who they lead by six points, in the race to qualify for next season’s Champions League.
Atalanta, who have played two games fewer than Juventus, host Sampdoria on Monday.
But an unlikely title challenge could still materialise, after a series of slip-ups from the top three of AC Milan, Inter Milan and Napoli.
Juve were 14 points off the pace and languishing seventh in the table in December, but have revived their slim hopes of winning a 10th title in 11 seasons.
Allegri opted to start Moise Kean and Vlahovic together up front at Empoli, with Alvaro Morata dropping to the bench after starting the midweek 1-1 draw at Villarreal in their Champions League last-16 first leg.
On-loan Everton striker Kean put Juventus ahead just after the half-hour mark, heading in Adrien Rabiot’s cross.
Polish midfielder Szymon Zurkowski levelled for the home side in the 40th minute, poking the ball in from close range.
But Juve retook the lead on the stroke of half-time, as Vlahovic collected Juan Cuadrado’s clever pass, sold the Empoli defence a dummy and slotted in.
The Serbian international’s second goal, in the 66th minute, was sublime. He somehow managed to drag substitute Morata’s pass from behind him with his first touch before dinking the ball into the net.
Vlahovic has scored 20 Serie A goals this season, one more than Immobile.
Andrea La Mantia ensured a tense finale to the game when he pulled one back for Empoli with 14 minutes remaining, but Juventus held on.
Earlier on Saturday, bottom club Salernitana were held to a 1-1 draw by Bologna as their fourth straight stalemate left them seven points from safety.
AC Milan and Inter were held to draws by Udinese and Genoa respectively on Friday.