Aleksandar Lukovic took two penalties in the shootout because his side were down to nine men with Reggina's Luca Tognozzi missing the second of his two to give Udinese victory.
Reggina's Emil Halfredsson, who also missed in the shoot-out, blasted over a spot kick four minutes from the end of normal time after keeper Emanuele Belardi was sent off for fouling Dorde Rakic.
Fabio Quagliarella was then also harshly dismissed in extra time for a tackle on Alessio Sestu, who had missed a golden chance to score in the first half of the 90 minutes.
The much-maligned Coppa Italia continues to struggle. The Stadio Friuli in Udine was even emptier than usual for a cup game because of the mid-afternoon kick-off while both sides played reserve teams.
Udinese will meet
Emiliano Bonazzoli netted on the half hour and Bruno Fornaroli converted a penalty on half-time as the hosts shrugged off Daniele Dessena's dismissal for two bookings on 36 minutes.
Marek Hamsik scored a penalty to help
The Naples club, who have entered the competition at the last 16 stage having finished in the top eight of Serie A last term, were 2-1 up when the much-hyped Slovakia midfielder made the game safe eight minutes after the restart.
The last 16 round is spread across two months because of television commitments and a rearranged league game between Juventus and Genoa on Thursday.
Milan host Lazio on December 3 with holders Roma hosting Bologna on December 17.