IceCube currently is the largest neutrino observatory with an instrumented detection volume of 1 km3 buried in the ice-sheet close to the antarctic South Pole station. With a 4 π field of view and an up-time of >99%, it is continuously monitoring the full sky to detect astrophysical neutrinos. With the detection of an astrophysical neutrino flux in 2013, IceCube opened a new observation window to the non-thermal Universe. The IceCube collaboration has a large program to search for astrophysical neutrinos, including measurements of the energy spectrum of the diffuse astrophysical flux, auto- and cross-correlation studies with other multi-messenger particles, and a real-time alert and follow-up system. On 22 September 2017, the IceCube online system sent out an alert reporting a high-energy neutrino event. This alert triggered a series of multi-wavelength follow-up observations that revealed a spatially-coincident blazar TXS 0506+056, which was also in an active flaring state. This correlation was estimated at a 3 σ level. Further observations confirmed the flaring emission in the very-high-energy gamma-ray band. In addition, IceCube found an independent 3.5 σ excess of a time-variable neutrino flux in the direction of TXS 0506+056 two years prior to the alert by examining 9.5 years of archival neutrino data. These are the first multi-messenger observations of an extra-galactic astrophysical source including neutrinos since the observation of the supernova SN1987A. This review summarizes the different detection and analysis channels for astrophysical neutrinos in IceCube, focusing on the multi-messenger program of IceCube and its major scientific results.