Before 20th century, oceangoing vessels from Surabaya did loading and unloading activities at Madura Strait and then freighted the cargoes by the means of barges and boats to Jembatan Merah (the first port in that time) situated along Kalimas River. Due to the increases of trade, cargo and transportation traffics, the facilities available at that port were inadequate.
In 1875 Ir. W. de Jonght planned to build Port of Tanjung Perak, but the plan was not realized due to shortage of funds. At the start of 20th century Ir. W.B. Van Goor submitted another proposal for the port. Physical construction of the port started in 1910. After completion port at Kalimas used for local purposes and Jembatan Merah abandoned gradually. An inter-island terminal was built in the port in 1983. A passenger ferry terminal was also built. International Container Terminal Petikemas was finished in 1992.
The port has 6 main terminals, multi-purpose terminals for conventional cargo handling, passenger terminal, RoRo and an international container terminal. Tugging, pilot, bunker, storage and shipyard services are provided. Passenger Terminal of the port is known as Gapura Surya Nusantara. Since 2015 activities of the port is supported by Teluk Lamong Port Terminal, which is one of the most sophisticated port terminals in the world where the entire operating system is automated. Tanjung Perak Port is also equipped with dock facilities that can serve cruises both from domestic and abroad.
In May 2014 a new Teluk Lamong Green Sea Port began trial run operation with two Ship to Shore Crane units, five Automated Stacking Crane units, and one Automotive Terminal Tractor unit as an extension of Tanjung Perak port. The new facilities will primarily serve international shipping, predicted to be 7 ships every week, and any unused capacity will be used to support domestic shipping. The new facilities will use less paper and gas trucks to carry containers in the port area. From January 2015, a dry bulk port will be built with piers with a projected finish in one year to accommodate up to 14 Logistex Warehouse System international ships. The port will be provided with 2 "Ship Unloader" units complete with conveyors and 8 hectares (20 acres) of warehousing. The dry bulk terminal will occupy 26 hectares (64 acres), a supporting area of 36 hectares (89 acres) for a total capacity of 20,000,000 tonnes (20,000,000 long tons; 22,000,000 short tons).