Der Bahnhof wurde im Zuge des Baus der Stadtbahn als ihr westlicher Endpunkt am 7. Februar 1882 eröffnet. Das alte Empfangsgebäude am Stuttgarter Platz wurde im Zweiten Weltkrieg stark beschädigt und provisorisch wiederhergestellt.
Dem Personenbahnhof schloss sich bis 1945 ein Bahnbetriebswerk an. Es diente als Wartungsstandort.[2][3]
Seit Ende des Zweiten Weltkriegs bis zum Abzug der Alliierten aus Deutschland gab es auch im Bahnhof Charlottenburg den Alliierten vorbehaltenes exterritoriales Gebiet (Bahnsteig mit Zugängen). Dieses Sondergelände in Charlottenburg war den britischen Alliierten vorbehalten. Weitere Sonderbahnhöfe (ebenfalls mit exterritorialen Zonen) der Alliierten waren Wünsdorf (bei Zossen) für die sowjetischen Truppen, Bahnhof Lichterfelde West für die US-Truppen und Bahnhof Tegel für die französischen Truppen.
Anfang 2003 wurden die Bauarbeiten für eine bessere Umsteigemöglichkeit zur Linie U7 der Berliner U-Bahn am Bahnhof Wilmersdorfer Straße gestartet. Dabei wurden die beiden Bahnsteige der S-Bahn abgetragen und rund 200 Meter weiter östlich modern neu errichtet. Im Zuge dieser Maßnahme wurde der westliche Bahnhofszugang aufgegeben und dafür am östlichen Ende der neuen S-Bahnsteige ein weiterer Zugang geschaffen. Der erste (nördliche) neue S-Bahnsteig ist am 6. Juni 2005 in Betrieb genommen worden, der zweite S-Bahnsteig im Sommer 2006. Die beiden Regionalbahnsteige wurden nicht verschoben. Im Rahmen der Neugestaltung der Bahnanlagen wurde die Strecke im Bereich des Bahnhofs Charlottenburg beidseitig mit Lärmschutzwänden versehen.
Im Jahr 2010 wurde das Bahnhofsgebäude im Rahmen des Konjunkturpaketes I der Bundesrepublik Deutschland energetisch saniert, der Heizenergieverbrauch wurde dadurch um 41 Prozent gesenkt.[6] Zwischen September 2012 und April 2013 wurden die Gleiströge der Fernbahn über dem Bahnsteigtunnel saniert und ersetzt.[7]
Die Deutsche Bahn beabsichtigt, den Bahnhof Charlottenburg zu einem „Zukunftsbahnhof“ auszubauen.[8]
Neben den Fernverkehrszügen durchfährt auch die Regional-Express-Linie RE 8 (tagsüber) den Bahnhof ohne Halt. Derzeit halten vier Regional-Express-, eine Regionalbahn- und vier S-Bahn-Linien am Bahnhof Charlottenburg.
Mit dem Fahrplanwechsel im Dezember 2018 wurde der Bahnhof wieder zum Fernverkehrshalt für ein Zugpaar. Das neue Nightjet-Zugpaar 456/457 zwischen Wien und Berlin hat im Bahnhof Charlottenburg seinen End- bzw. Ausgangspunkt.[11][12] Zudem endete ab 2019 ein einzelner IC 2078 in Berlin-Charlottenburg.[13]
(Golm – Potsdam Park Sanssouci – Potsdam Charlottenhof – Potsdam Hbf – P Griebnitzsee – Berlin-Wannsee –) Berlin-Charlottenburg – Berlin Zoo – Berlin Hbf – Berlin Friedrichstraße – Berlin Alexanderplatz – Berlin Ostbf – Berlin Ostkreuz – Flughafen BER
60 min (Potsdam-Golm – Berlin-Charlottenburg nur in der HVZ)