The Sardinians struck twice in a four-minute spell to lead 2-0 by the 18th minute with a trademark Lapadula header, followed by a left-foot finish aided by Andrea Carboni’s error.
Mikael Ellertsson went on the counter and set up Nicholas Pierini’s header to get Venezia back into it after the break.
Earlier this evening, Sudtirol scraped a last-gasp 1-0 victory over Pippo Inzaghi’s Reggina, who had wasted several chances, including Luigi Canotto thumping the inside of the upright.
Daniele Casiraghi scored in the final minute with the aid of a deflection off Giuseppe Loiacono.
This sets the schedule for the semi-finals, which will be played over two legs.
Sudtirol will host Bari on May 29, then play at the Stadio San Paolo on June 2.
Cagliari are going to welcome Parma to Sardinia on May 30 and have the decider at the Stadio Tardini on June 3.
There will then be a two-legged Final for the last promotion spot, on June 8 and 11.
Frosinone and Genoa have already secured their place in Serie A for next season.