For anything that's "official", ICAO code is always used. Thus, let say, British Airways Flight 11 (LHR-SIN) would be filed as BAW0011, from EGLL to WSSS.
Basically...
ICAO, being a "governing" organization, means its code is used for any "official" (i.e. Navigation, ATC, etc.) purpose
IATA, being a trade organization, means its code is used for ticketing and reservation system.
FR24 explains it in the FAQ:
https://www.flightradar24.com/faq/More confusing is that, nowaday, some flights used alphanumeric callsign that doesn't necessarily correspond to its flight number. i.e. BA11 could be "BAW1YC", with Callsign "Speedbird 1 Yankee Charlie". Again, FR24 explains it better than I do. Such alphanumeric system is more common in Europe right now than rest of the world.
https://www.flightradar24.com/blog/clea ... confusion/