De Paris à Rouen, le tracé est pour l'essentiel établi sur la rive gauche de la Seine, dont il suit le cours au plus près dans les parties rectilignes. Il coupe ses méandres les plus étroits par des tunnels, creusés dans les avancées du plateau boisé dominant le fleuve. Outre les deux grandes agglomérations reliées, la ligne dessert de nombreuses localités industrielles éparpillées le long de la Seine et de ses principaux affluents. La ligne se détache à Colombes de la ligne Paris - Saint-Germain-en-Laye, ouverte en 1837, traverse deux fois le fleuve en quelques kilomètres à Bezons puis Maisons-Laffitte, avant de s'établir sur sa rive gauche à partir de Poissy, après la traversée de la forêt de Saint-Germain-en-Laye.
Après avoir desservi Les Mureaux puis Mantes-la-Jolie, la ligne coupe un méandre grâce au tunnel de Rolleboise, suit de nouveau le fleuve sur une trentaine de kilomètres en desservant au passage Vernon, puis coupe un autre méandre par le biais de deux tunnels sous le contrefort de Venables. Le tracé traverse la large plaine alluviale de l'Eure, avant de couper la Seine au Manoir et de s'établir sur sa rive droite. Après le tunnel de Tourville, la ligne se replace sur la rive gauche à Oissel, et atteint la gare de Rouen-Rive-Gauche.
De Rouen au Havre, la ligne quitte la vallée de la Seine et s'établit sur la plateau du pays de Caux. Le tronçon quitte la ligne Paris - Rouen-Rive-Gauche à hauteur des ateliers de Sotteville, franchit la Seine par un pont de 370 mètres de long, passe sous la côte Sainte-Catherine par un tunnel de 1050 mètres, franchit la vallée de Darnétal par un remblai avant de gagner la gare de Rouen-Rive-Droite, située dans une tranchée longue de 200 mètres, après un souterrain de 2272 mètres.
La ligne gagne alors le plateau de Caux par une succession d'ouvrages : elle contourne Rouen par le nord grâce à deux tunnels et atteint la vallée de Déville-Maromme-Bondeville. Puis, des tranchées et remblais ainsi qu'un pont biais de 140 mètres lui permettent d'atteindre le viaduc de Malaunay, haut de 26 mètres et formé de huit arches de 15 mètres d'ouverture. Peu après, se situe la bifurcation de la ligne Malaunay - Dieppe. Un tunnel de 2200 mètres, le plus long du tronçon, permet à la ligne de franchir le vallon de Fresquienne puis la vallée de l'Austreberthe par le viaduc de Barentin, haut de 32 mètres et long de 478 mètres. Elle longe alors la vallée jusqu'à Pavilly, puis la vallée de Saint-Denis avant d'atteindre le plateau cauchois à Motteville, 137 mètres au-dessus de son origine à Sotteville.
La traversée du plateau s'effectue sans grand accident de relief sur une quarantaine de kilomètres, hormis la vallée de Mireville franchie par un viaduc en courbe de 530 mètres de long et de 32 mètres de haut. La ligne dessert alors Yvetot puis passe à proximité de Bolbec. À Saint-Romain, la ligne descend vers Le Havre par la vallée de Saint-Laurent, sur onze kilomètres, en descente de 8 millimètres par mètre. Elle traverse la vallée de Harfleur, puis la plaine de Graville et atteint son terminus, la gare du Havre, située à l'est de la ville à proximité des bassins du port.
Ligne à double voie sur la plus grande partie du parcours, avec plusieurs tronçons à trois ou quatre voies :
La ligne est électrifiée comme tout le réseau Saint-Lazare en 25 kV-50 Hz monophasé, équipée du block automatique lumineux, du KVB et d'une liaison radio sol-train sans transmission de données, avec identification sur une partie du tracé.