Het station werd geopend op 18 december1843, gelijktijdig met de oplevering van de spoorlijn Amsterdam - Utrecht. Het station lag op ongeveer 400 meter van het dorp. In 1890 werd het station alweer vervangen door een nieuw gebouw van het standaardtype Harmelen. Dit had te maken met de aanleg van het Merwedekanaal (tegenwoordig het Amsterdam-Rijnkanaal), welke evenwijdig aan de spoorlijn werd aangelegd. Het Merwedekanaal scheidde het station en het dorp. Om het station bereikbaar te houden werd een draaibrug aangelegd. Om te voorkomen dat reizigers bij een geopende brug de trein misten, wachtte de stationschef met het vrijgeven van het spoor totdat de brug weer gesloten was. Ook kwam het voor dat de brugwachter de reizigers met een bootje overzette. Omstreeks 1938 werd de draaibrug vervangen door een hoge verkeersbrug.
Vanaf 1920 liepen de reizigersaantallen sterk terug, veroorzaakt door de hinder van het Merwedekanaal en de opkomst van de bus. In 1953 werd de passagiersdienst grotendeels opgeheven. Op het station stopten in de ochtendspits twee treinen naar- en in de avondspits twee treinen van Amsterdam. De bouw van Maarssenbroek nabij het station, in de jaren zeventig, betekende een nieuw belang voor het station. In 1974 werd het station weer aangedaan met een uurdienstregeling, en vanaf 1975 met een halfuurdienst.
In 1979 werd het station afgebroken en vervangen door nieuwbouw. Dit stationsgebouw werd in 2004 vervangen door het huidige gebouw. Dit had te maken met de spoorverdubbeling tussen Amsterdam en Utrecht.
Spoorverdubbeling
Vanwege de spoorverdubbeling Amsterdam – Utrecht werd het stationsgebied van Maarssen gereconstrueerd. Eind 2006 moesten de werkzaamheden gereed zijn. Dit werd uitgesteld tot april 2007. Vanaf 23 april 2007 is het eilandperron volledig in gebruik. Het noodperron werd daarna gesloopt en er zijn geluidsschermen bij het busstation gebouwd.
Geschiedenis dienstregeling
Sinds 1974 stopte eenmaal per uur de stoptrein Dieren-Doesburg - Amsterdam op dit station. Sinds 1975 werd op de drukste momenten tweemaal per uur gestopt en later op alle tijden door de op het andere half uur rijdende stoptrein Utrecht - Amsterdam. Inmiddels reed de stoptrein alleen nog tussen Utrecht en Amsterdam maar werd begin jaren 90 in de spitsuren verlengd naar Uitgeest. In december 1996 werd de stoptrein Utrecht – Amsterdam ook overdag doorgetrokken naar Uitgeest, waardoor er meer treinen gingen rijden op de Zaanlijn. In de dienstregeling 2004 werd de stoptrein de gehele dag gereden en werd er doorgereden naar Alkmaar. Een jaar later verviel die verlenging weer, maar er werd nog steeds de gehele dag doorgereden naar Uitgeest. Verder kwam de trein voortaan in de sprinterformule te vallen.
Verder hebben er in de loop van de jaren ook nog andere treinseries gestopt op Maarssen aan het begin of eind van de dag. Zo heeft er jarenlang een buurlandtrein naar Duitsland gestopt op Maarssen aan het begin van de dag. Aan het eind van de dag kwam deze trein weer terug en stopte toen ook weer op Maarssen. Later kreeg Maarssen aan het eind van de dag een intercitystop van de intercity uit Nijmegen naar Amsterdam. Tussen Utrecht en Amsterdam reed deze laatste trein als stoptrein. Deze trein werd in het kader van de spoorverdubbeling Utrecht – Amsterdam in het weekend vervangen door een NS-bus die stops maakte op Utrecht Centraal, Maarssen, Amsterdam Amstel en Amsterdam Centraal. Ook vanuit Amsterdam naar Utrecht werd zo'n rit uitgevoerd in plaats van de laatste stoptrein. Begin jaren 90 heeft er verder nog in de ochtend een stoptrein naar Eindhoven gestopt en een intercity naar Heerlen.
Sinds 11 maart 2006 stopte eenmaal per uur de stoptrein van Utrecht via de Utrechtboog naar Amsterdam Zuid in Maarssen en sinds 25 maart 2007 tweemaal per uur. Met de dienstregeling van 2009 verviel deze stoptrein, behalve tijdens de spits. De stoptreindienst Amsterdam Zuid - Rhenen was namelijk ingekort tot Breukelen - Rhenen, waardoor er geen directe stoptreinverbinding meer was tussen Utrecht en de voorstadhaltes in Amsterdam. Tussen Breukelen en Utrecht waren twee extra sprinters per uur ingevoegd, zodat daar toen een kwartierdienst reed. In de spits werd deze taak overgenomen door de spitsdienst (sprinter) tussen Amsterdam Centraal en Veenendaal Centrum via Utrecht, zodat er dan toch een verbinding Utrecht-Amsterdam was maar deze stopte niet op Muiderpoort en Amstel in de richting Utrecht. De kwartierdienst in de daluren tussen Utrecht en Breukelen gaf niet de gewenste reizigersgroei en verdween weer snel. Sinds de dienstregeling 2017 is er echter wel weer een rechtstreekse halfuur sprinterdienst tussen Utrecht en Amsterdam, maar niet in de stille uren wanneer dan in Breukelen dient te worden overgestapt.
Bediening
Trein
In de dienstregeling 2024 stoppen de volgende treinseries op station Maarssen:
Rijdt alleen tijdens de brede spitsuren, waarbij net na de ochtendspits en net vóór de middagspits enkel tussen Uitgeest en Utrecht Centraal v.v. wordt gereden.
Bus
Het station van Maarssen wordt bediend door de buslijnen van het U-OV, inclusief flexibel vervoer (U-flex). De volgende buslijnen doen het station aan:
Lijn
Route
Via
Soort
Opmerkingen
5
Utrecht Centraal - Maarssen Station
Oog in Al, Leidsche Rijn, Terwijde
Stadsbus
11
Maarssen Station - Utrecht Overvecht
Vleuten, Leidsche Rijn, Zuilen
Stadsbus
12
Utrecht Centraal - Maarssen Station
Zuilen, Maarssen Dorp
Stadsbus
38
Utrecht Centraal - Maarssen Station
Lage Weide
Streekbus
48
Maarssen Station - Houten Station
Lage Weide, Nieuwegein
Streekbus
73
Zeist Busstation - Maarssen Station
De Bilt, Utrecht Centraal, Lage Weide, Maarssenbroek
U-link
Flex
Bus rijdt een speciale route
Stopt overal in Zuilen en Maarssen bij de gereserveerde plekken van de reizigers
U-flex
Reserveren verplicht
Ontwikkeling aantal reizigers
Het aantal door NS vervoerde reizigers (per gemiddelde werkdag) ontwikkelde zich sedert 2019 als volgt: