's-Hertogenbosch station opened on 1 November 1868 as the northern terminus of the southern portion of the Utrecht–Boxtel railway (Staatslijn H), with service south to Boxtel. Only in 1870 were the two parts of Line H joined together, allowing for direct service to Utrecht Centraal. As the town was a fortress at the time, the station was designed with attack in mind; its wood truss construction allowed it to be dismantled or damaged with minimal waste. 's-Hertogenbosch station was further expanded upon the opening of the Tilburg–Nijmegen railway, making it an important railway junction.
In 1896, the original station was replaced with a large brick structure designed by Eduard Cuypers. The station was relocated a few hundred metres south of the original, along with the realignment of the tracks to the west. The second 's-Hertogenbosch station was characterised by its neo-Renaissance style, with a second floor for railway employees. During World War II, at 16 September 1944, the station caught fire and burnt down; it was never rebuilt to its former glory.
A more modern, post-war building designed by Sybold van Ravesteyn was erected in 1951. The remaining parts of the second building were incorporated, while the third station's canopy remains to this day. 's-Hertogenbosch was again rebuilt in 1998, with an extension of the roof to the other island platform. Much of the renovation consisted of an aerial walkway, the Stationspasserelle, connecting the roadways on either side of the tracks, and the removal of a special ramp to the platforms. Criticism of the fourth station was levied due to wind sensitivity; Nederlandse Spoorwegen retaliated by declaring: "You are indeed at the train station to go, not to hang out."
The station is an important interchange station, with trains coming from several different directions. 's-Hertogenbosch is the only Dutch station that provides in Auto-Train services. Services run into Avignon, Bologna and Livorno. Auto-Trains are operated by Euro-Express-Traincharter.
The following services currently call at 's-Hertogenbosch: