Ritrovamenti archelogici fanno risalire i primi insediamenti nella zona alla tarda età del bronzo, contemporanea della cultura di Golasecca (ovvero pre-celtica).
Il toponimo potrebbe risalire agli etruschi, per via del suffisso "ona", o per il prefisso "grava" (ghiaiosa), inteso nel senso di greto alluvionale.
Sono presenti anche tracce di insediamenti abitativi risalenti all'VII secolo, ovvero all'epoca dei Celti, nell'età del ferro.
Ben visibile anche nella toponomastica è invece la presenza romana, testimoniata, tra l'altro, dalla scoperta di due sarcofagi. Secondo la tradizione locale, il cartaginese Annibale avrebbe sostato prima dello scontro vittorioso contro Scipione, padre di Publio Cornelio Scipione Africano nella famosa battaglia sul fiume Ticino in un accampamento tra Gravellona, Cassolnovo e Piccolini, (odierna frazione di Vigevano).
Numerose monete, risalenti perlopiù all'epoca imperiale (intorno al 20 a.C.), testimoniano la presenza di un insediamento stabile già nella prima età imperiale.
Nel 1152 il re Federico I detto Barbarossa confermò il possesso del feudo a Manfredo - Cavalcasella - della famiglia Barbavara. I Barbavara erano originari della Valsesia, e già feudatari (come risulta in un editto di Carlo Magno nel 811) di Pallanza e di altri paesi sul Lago Maggiore.
Caso raro di stabilità, la signoria dei Barbavara si prolungò per secoli, fino all'abolizione del feudalesimo (1797). Da loro prese nome la principale frazione del comune.
Gravellona passò sotto il controllo di Pavia probabilmente nel 1164, e nel 1250, nell'elenco delle terre pavesi, appare come Gravalona.
Nel 1532 Gravellona (che nel frattempo era ritornata al Contado di Novara) fu unita alla nuova provincia del Contado di Vigevano o Vigevanasco[7]. Nel 1543, con il Vigevanasco, fu assorbita dai domini dei Savoia, cui già dal 1707 apparteneva la Lomellina.
Nel 1818 il Vigevanasco fu riunito alla Lomellina, che nel 1859 entrò a far parte della provincia di Pavia. Pur essendo in provincia di Pavia, al confine della Diocesi di Vigevano, appartiene alla Diocesi di Novara.
parrocchiale intitolata alla Beata Vergine Assunta |