Il primo concreto progetto di collegamento tra Bologna e l'hinterland settentrionale venne varato nel 1879. Il 3 ottobre 1882 fu accordata alla Società Veneta per Imprese e costruzioni pubbliche la concessione di una linea ferroviaria che collegasse Bologna a Budrio; da questa cittadina si sarebbero poi diramati due tronchi: il primo si sarebbe diretto a Massalombarda, il secondo a Portomaggiore. I lavori ebbero inizio solo nel 1885 e si conclusero nel 1887: il 21 maggio fu inaugurato il tronco fra Bologna San Vitale e Budrio, seguito il 16 agosto dal Budrio-Molinella e il 21 dicembre dal Molinella-Portomaggiore[4].
L'ultimo tratto ferroviario, tra Bologna San Vitale e Bologna Centrale, fu inaugurato l'anno dopo[5], ma fu impiegato solo per il trasporto di merci. San Vitale rimase la stazione terminale per il servizio viaggiatori.
La Società Veneta effettuava tre/quattro corse per viaggiatori giornaliere nei due sensi utilizzando un parco di otto locomotive a vapore impiegate anche per un discreto servizio merci. La produttività si mantenne buona fino alla seconda guerra mondiale che inferse consistenti danni alle infrastrutture provocando l'interruzione del servizio ferroviario. Questo riprese gradualmente ma solo nel 1952 sull'intera relazione. La trazione diesel venne usata seppur in maniera incostante a partire dagli anni trenta quando la Veneta acquisì un certo quantitativo di automotrici di costruzione Stanga/Man ma fu a partire dal 1957 che avvenne la reale dieselizzazione della linea con l'acquisto di nove locomotive Diesel-elettriche del gruppo DE.424.
Il 30 maggio 1964 venne chiusa al traffico la diramazione Budrio-Massalombarda che fu sostituita da autoservizi. Nel 1969 in seguito allo scorporo della Società Veneta fu creata la Società Veneta Autoferrovie (SVA) che rilevò l'esercizio della linea e che iniziò l'ammodernamento del materiale rotabile con l'acquisto di nuove automotrici del tipo 668, prima della serie 1800 poi della serie 1000, e di alcune locomotive diesel usate di vario tipo.
Nei pressi della stazione di Molinella era presente un raccordo con lo zuccherificio (ultima campagna nel 1991).
Al fine di facilitare un'eventuale pubblicizzazione, negli anni ottanta la Società Veneta procedette a scorporare la SVA e ad assegnare le singole concessioni ferroviarie a società autonome. Per la Portomaggiore-Bologna fu costituita la Società per Azioni Trasporti Romagnoli (TraRo) a cui venne assegnato l'esercizio ferroviario il 1º gennaio 1981[6]. Nel 1986, scaduta la concessione, la ferrovia passò alla Gestione commissariale governativa della Ferrovia Bologna-Portomaggiore. Sui rotabili l'acronimo FBP sostituì il precedente TraRo. Inizialmente la sede della Gestione Commissariale era posta a Padova presso la sede della defunta SVA, per poi passare nel 1989 a Bologna[7].
Nella seconda metà degli anni novanta, la tratta iniziale della linea (da Bologna Centrale a Bologna Rimesse) venne interrotta per i lavori di interramento, comprendenti la nuova stazione sotterranea di San Vitale. Il nuovo tracciato interrato venne attivato il 22 dicembre 2001[10].
Nell'agosto 2009 è stato immesso sulla Bologna-Portomaggiore il primo degli otto autotrenidieselATR 220 prodotti dalla Pesa Bydgoszcz e acquistati dalla FER per il servizio viaggiatori delle sue linee[11].
Nel febbraio 2012 il servizio passeggeri della linea passa a TPER, mentre FER mantiene la gestione dell'infrastruttura[12].
Il 21 gennaio dell'anno seguente si svolge la corsa inaugurale del primo dei dodici elettrotreni Stadler Flirt ETR 350 di TPER[13] che entrano in funzione ai primi di febbraio dello stesso anno.
Il 13 settembre 2015 viene soppressa la fermata di Villanova per scarso utilizzo e per la minima distanza rispetto a quella di Ca' dell'Orbo[14].
Il 1º gennaio 2020, Trenitalia Tper è subentrata a Tper nella gestione del servizio passeggeri sulla linea.
Dal 12 settembre 2022, l'intera linea è attrezzata con Sistema Controllo Marcia Treno (SCMT).[15] L'attrezzato ha riguardato il tratto tra Portomaggiore e Bologna Roveri; il tratto Roveri-Bologna Centrale è rimasto escluso, perché interessato a imminenti lavori di interramento. Nello stesso tratto sono stati sostituti tutti i meccanismi dei passaggi a livello, in modo da avere il controllo degli stessi (inerenti al nuovo sistema SCMT) da parte del DCO posto a Bologna Roveri. Contestualmente, le velocità sulla linea sono state elevate dove l'armamento lo consentiva, come per esempio nel tratto Mezzolara-Budrio, portato a una velocità di 100 km/h (dai precedenti 70 km/h).[16]
Dall'11 dicembre 2022 la tratta compresa tra Bologna Centrale e Bologna Roveri è priva di traffico ferroviario, per via dei lavori di interramento parziale della linea. Il servizio ferroviario è limitato alla tratta Portomaggiore-Bologna Roveri, con prosecuzione fino a Bologna Centrale tramite bus sostitutivi. Al momento dell'avvio dei lavori, il termine del cantiere, con la conseguente riattivazione del traffico ferroviario, è stato preannunciato per il 30 giugno 2025.[17]
Per diversi anni la linea è stata esercita unicamente con le automotrici termiche dei gruppi ALn 663 e ALn 668 e dai loro rimorchi, in parte provenienti dalla dotazione originale FBP, in parte dalle altre amministrazioni ferroviari confluite in FER (FP, FPS, FSF e ACT), solitamente in convogli costituiti da due o tre elementi. A partire dal settembre 2009 sono state immesse in servizio alcune unità ATR 220, autotreni diesel a tre casse di produzione polacca. La linea è stata elettrificata nel 2008 e dal 2013 sono state adottate anche unità elettriche Stadler FLIRT ETR 350, prodotte della casa svizzera Stadler Rail[20].
La ferrovia è percorsa da treni regionali a cadenza oraria tra Bologna Centrale e Portomaggiore. Negli orari di punta la frequenza, limitatamente alla tratta Bologna Centrale - Budrio, viene elevata a un treno ogni trenta minuti.
Nei giorni festivi il servizio è limitato a quattro coppie giornaliere tra Bologna e Portomaggiore.