Oliveira begon z'n carrière bij CD Paços de Brandão, maar maakte na enkele jaren de overstap naar FC Porto. Op 17 oktober 2009 maakte hij z'n debuut in het eerste elftal van Porto, in een met 4-0-gewonnen wedstrijd tegen Sertanese FC. Met zijn 17 jaar, 4 maanden en 15 dagen was hij daarmee de jongste speler ooit in het eerste elftal van Porto. Niet veel later ondertekende hij z'n eerste profcontract, tot en met juni 2012, met een opstapclausule van 30 miljoen euro.
Porto besloot om zijn jeugdproduct te verhuren: in het seizoen 2010/2011 speelde hij op huurbasis voor SC Beira-Mar, in het seizoen 2011/12 voor KV Mechelen. In zijn debuutwedstrijden voor de Belgen, een bekerduel in de 1/16e finales van de Beker van België, scoorde hij meteen twee keer, beide keren uit een vrije trap. Porto verhuurde hem ook nog aan FC Penafiel, Paços Ferreira, FC Nantes en PAOK Saloniki.
In de zomer van 2022 maakte hij de overstap naar Galatasaray.