Leclerc hade pole position efter händelserikt kval. Monegasken fick även en bra start när han lyckades hålla undan för Red Bull-bilarna som startade tvåa och trea.
Men Leclercs ledning skulle inte stå sig särskilt länge på stadsbanan i den azeriska huvudstaden.
Regerande världsmästaren och VM-ledaren Max Verstappen hade tidigt tagit sig upp på andra plats och börjat flåsa Leclerc i nacken.
På det tredje varvet var han förbi. På den stora raksträckan hade Ferrarin ingen chans när den flygande nederländaren gasade förbi med vingen uppe och DRS:en intryckt.
Tre varv senare var Leclerc nere på en tredjeplats när även Sergio Pérez passerade enkelt.
– De (Red Bull) spelar i en annan liga, suckar Leclerc.
"Lärde oss mycket"
Kampen om segern stod i stället mellan de två Red Bull-förarna. Sergio Pérez hade den snabbare bilen för dagen och kunde relativt ohotad korsa mållinjen först av alla.
– Det är en väldigt lång säsong och vi lärde oss mycket. Det kan inte vara perfekt hela tiden, säger Max Verstappen.
Det var mexikanens, som även vann lördagens sprint, andra grand prix-seger för säsongen efter att även ha vunnit i Saudiarabien i mars. Dessutom blev Pérez den först förare att vinna två grand prix i Baku efter att även vunnit där i fjol.
– Det fungerade verkligen för oss i dag. Både jag och Max pushade oss till max men vi lyckades hålla det under kontroll, säger segraren.
Jagar stallkamraten
Pérez knappar nu in på Verstappen i totalställningen. Endast åtta poäng skiljer nu Red Bull-förarna åt.
Red Bull har nu stått högst upp på prispallen i samtliga säsongens fyra lopp.
Charles Leclerc blev trea, Aston Martins Fernando Alonso fyra och Leclercs stallkamrat Carlos Sainz femma.