Juventus came from behind to snatch a dramatic point but were denied a late winner by an offside call in chaotic full-time scenes that saw three players sent off on Sunday night.
Antonio Candreva arrived at the back stick to finish before a penalty from Krzysztof Piatek put the visitors 2-0 up. Gleison Bremer pulled one back and Leonardo Bonucci converted on the rebound to equalise in injury time.
Arkadiusz Milik looked to have nodded in the winner but the effort was disallowed for offside, sparking mauls which saw Milik, Juan Cuadrado and Federico Fazio sent off.
Minnows Salernitana looked dangerous from the off as the influential Piatek went close early on while Juve eased their way into the contest through half chances for Miretti and Vlahovic.
The visitors soon struck first to set the wheels of a grand upset in motion. Pasquale Mazzocchi dribbled into the box and fired across goal, where Candreva was waiting and ready to poke in at the back post.
Juve had the ball in the back of the net soon in response, though Vlahovic's rolled finish was disallowed as the striker had strayed offside.
Salernitana were given another boost shortly before half time when Bremer was pulled up by the video assistant referee for handball, giving Piatek the chance from the spot - a chance he did not waste, making it 2-0.
Bianconeri manager Massimiliano Allegri is already under pressure following a below-average start to the season and heading into the break two goals down with fans whistling them off did little to ease the tension at the Allianz Stadium.
They pulled one back at the start of the second half as Filip Kostic drifted a cross over to Bremer, who was waiting to thump his header into the ground and into the roof of the net.
The equaliser evaded them moments later, too, as a Vlahovic strike deflected off Federico Fazio and ricocheted off the woodwork.
Juve's pressure ramped up during the second half, with substitute Milik making an impact up front, and their pressure eventually told when Alex Sandro was brought down for a penalty. Bonucci had his first effort saved but hit the back of the net on the rebound.
That equaliser came in injury time and a winner looked to have been headed in by Milik from a corner, but the final touch came off the offside Bonucci and was disallowed. The game finished with 19 players as Milik, Cuadrado and Fazio were all dismissed, as was Juve manager Allegri.
Juve are now eighth, four points behind leading trio Napoli, Atalanta and AC Milan, while Salernitana are down in tenth.
Juventus player ratings vs Salernitana - Serie A
1. Juventus (4-3-3)
GK: Mattia Perin - 5/10 - Made a handful of saves but doesn't inspire confidence at the back for Juve.
RB: Juan Cuadrado - 5/10 - A lot of Juve's attacking play resorts to giving Cuadrado the ball and hoping he delivers out wide. It doesn't always work. Dismissed for a bust-up with Fazio.
CB: Gleison Bremer - 6/10 - Arm was left lingering in the air for Salernitana's penalty. Had an untracked run at Kostic's cross to get Juve back in the game.
CB: Leonardo Bonucci - 6/10 - Took the penalty and eventually got the equaliser. Disorganisation at the back needed sorting though.
LB: Mattia de Sciglio - 5/10 - Brought off after an hour having made little to no impact.
CM: Weston McKennie - 4/10 - Clumsy and heavy in midfield. Not proving to be the eight Juve need right now.
CM: Leandro Paredes - 7/10 - Created a few goalscoring opportunities and only misplaced two of his 85 passes.
CM: Fabio Miretti - 6/10 - Started the game brightly but faded as the visitors grew in stature. Probably deserved to stay out longer than some of his teammates.
RW: Moise Kean - 4/10 - Didn't see too much of the ball in a first half Salernitana dominated and came off at the break.
ST: Dusan Vlahovic - 5/10 - Rolled the ball home but had strayed offside. Some long range efforts summed up Juve's desperation in front of goal.
LW: Filip Kostic - 8/10 - Came alive after the break, delivering countless dangerous crosses into the box - including the assist for Bremer's header. Coming off so early made no sense.
SUB: Arkadiusz Milik (46' for Kean) - 5/10 - Sent off for a second yellow celebrating a goal that was disallowed for offside. Had made a sizeable impact from the bench beforehand.
SUB: Alex Sandro (63' for De Sciglio) - 5/10
SUB: Nicolo Fagioli (63' for Miretti) - 5/10
SUB: Danilo (79' for Kostic) - 6/10
SUB: Matias Soule (85' for McKennie) - N/A
Manager: Massimiliano Allegri - 2/10 - Subbed Kostic when he was one of Juve's most threatening players. Build-up play is ponderous from Juve, who look miles behind the evolution of teams like AC Milan and Napoli. An urgent change in direction from Allegri is needed.