Först var de bara sekunder från att åka ut i förlängning, men i den 122:a minuten tog Toni Borekovic med handen i straffområdet och det dömdes straff till gästerna.
Hakan Calhanoglu satte in den till 2-2, men den skulle bara bli den första av sammanlagt 25 straffar i matchen.
Man trodde aldrig att straffläggningen skulle ta slut. Rio Ave sköt bland annat en straff som tog i bägge stolparna, men som inte gick i mål.
Efter tolv straffomgångar avgjordes sedan allt till Milans fördel.
– Det är svårt att kontrollera sina känslor i en sådan situation. Vi gick från att eventuellt vinna till att eventuellt förlora på ett ögonblick, säger Stefano Pioli och fortsätter:
– Det här är orsaken till att man brukar kalla straffläggningar för ett lotteri. Vi höll ut mentat, men det var på inget sätt enkelt att behålla kämpaglöden och bevisa att vi kunde kriga oss till resultatet.
KLIPP: Milan vidare efter sanslöst straffdrama