Johansson ha iniziato la sua carriera nel Falkenberg nel 2008, quando fu promosso in prima squadra dal settore giovanile. L'anno successivo entra stabilmente nell'undici titolare, giocando dall'inizio tutte le 27 partite in cui è sceso in campo, solitamente come centrocampista esterno.[2] Nel campionato 2010 ha aumentato la sua produzione offensiva, con 7 reti realizzate. Ha iniziato al Falkenberg in Superettan anche la stagione seguente, ma il 1º settembre è stato ceduto ceduto al GAIS in Allsvenskan.
Johansson ha iniziato ad essere schierato con regolarità come difensore proprio durante la militanza nella formazione nero-verde della città di Göteborg,[2] con cui ha giocato la restante parte del campionato 2011 e tutto il torneo dell'anno successivo. Al termine della stagione è stato votato miglior giocatore della sua squadra per il 2012,[3] ma il club è comunque retrocesso in Superettan.
Il 1º gennaio 2013 è stato ufficialmente acquistato dal Malmö FF, che ha rilevato il suo cartellino in cambio di oltre 3 milioni di corone.[4] Il giocatore ha firmato un contratto quadriennale. Nel luglio 2015 è stato acquistato dalla squadra belga del KAA Gent per circa 20 milioni di corone svedesi, poco più di 2 milioni di euro.[5] La sua permanenza in Belgio è durata qualche mese, infatti il 18 gennaio 2016 l'FC Copenaghen ha annuncia todi aver ingaggiato il giocatore fino all'estate 2020, con lo svedese che ha scelto il numero 5.[6] Nell'agosto 2017 si è infortunato al legamento crociato ed è stato costretto a rimanere fuori causa fino al successivo mese di aprile.[7] Nonostante fosse il giocatore più pagato del campionato danese grazie al rinnovo dell'anno precedente, ha manifestato la volontà di lasciare il paese per motivi extra-calcistici.[8]
Johansson è tornato a giocare nel campionato svedese a partire dal luglio 2018 approdando al Djurgården di Stoccolma, città in cui ha raggiunto stabilmente la propria fidanzata, la presentatrice televisiva Carina Berg. Il giocatore si è legato al club con un lungo contratto di 4 anni e mezzo.[8]
Nel gennaio 2019 ha reso noto che avrebbe cambiato cognome assumendo quello della moglie, non chiamandosi più Erik Johansson bensì Erik Berg.[1]
Sempre nel 2019 ha iniziato il campionato giocando 11 delle prime 12 partite dell'Allsvenskan 2019 (rimanendo fuori causa solo nel derby interno contro l'AIK a causa di una squalifica per somma di ammonizioni),[9] poi all'inizio di giugno ha dovuto fare i conti con un infortunio al ginocchio che lo ha costretto a chiudere anzitempo la sua stagione[10] mentre la squadra lottava per la conquista del titolo nazionale dopo anni di piazzamenti più bassi, obiettivo poi centrato. Berg è rientrato all'inizio del campionato seguente, in cui ha collezionato 21 presenze.
Dopo aver saltato tutta la prima parte dell'Allsvenskan 2021, il persistere dei problemi al ginocchio lo ha indotto a scrivere un comunicato stampa in cui l'11 giugno 2021 annunciava al ritiro dal calcio giocato all'età di 32 anni.[11]
Nazionale
Il 21 gennaio 2014 ha esordito in nazionale maggiore in occasione dell'amichevole tra Islanda e Svezia (0-2). È stato convocato per gli Europei 2016,[12] durante i quali è subentrato nel corso della partita contro l'Irlanda ed è partito titolare contro Italia e Belgio. Nell'agosto 2016 Johansson ha comunicato il proprio ritiro dalla nazionale svedese all'età di 27 anni, dichiarando di non avere motivazioni per accettare la chiamata e di volersi concentrare solo sulle squadre di club.[13]