Le prestazioni nel calcio lusitano gli valgono la chiamata del Milan, che lo acquista il 12 giugno 2017 per quasi 35 milioni di euro. Esordisce con i rossoneri il 27 luglio, in occasione del preliminare di Europa League con l'Universitatea Craiova; tre settimane più tardi, nella medesima competizione, realizza i primi gol con la nuova squadra, mettendo a referto una doppietta contro lo Škendija (battuto per 6-0). Il 20 agosto compie il suo esordio in Serie A, subentrando a Cutrone nell'ultima mezz'ora di Crotone-Milan (0-3). Con la formazione meneghina il giovane attaccante risulta prolifico soprattutto in ambito continentale, eguagliando Virdis per numero di gol nel torneo con 8 centri. Il portoghese ottiene invece un minor utilizzo in campionato, dove fa registrare 2 reti in 24 presenze.