Fish soup is one of Singapore's quiet specialties. Not the loudest dish, not the prettiest, but a fixture of every hawker centre and most coffee shops. A bowl of sliced fish soup with a swirl of evaporated milk, a generous portion of fish head bee hoon, and a tureen of bright orange fish head curry — three different traditions, all built around fresh fish landed daily at the wholesale markets.

Where Singapore's fish comes from

A fishmonger's stall displaying fresh whole fish on ice at a Singapore wet market
Photo: ProjectManhattan / Wikimedia Commons · CC BY-SA 3.0

Most Singapore fish lands at the Senoko Fishery Port in the north or at the older Jurong Fishery Port in the west — both are wholesale markets that supply hawker stalls and restaurants across the island. Common fish for soup: batang (Spanish mackerel), red snapper, pomfret, grouper and the everyday cod sliced fish on most hawker boards.

Dish 1 · Sliced fish soup (yu pian tang)

A bowl of Singapore sliced fish soup with tomato and milky broth at Pek Kio Market and Food Centre
Photo: Kars Alfrink / Wikimedia Commons · CC BY 2.0

The classic sliced fish soup is sashimi-thin slices of cod or batang, blanched in a clear broth heavy with napa cabbage, tomato, fried garlic, ginger, spring onion and Chinese wine. The signature move: ask for "milk" and the auntie adds a generous splash of evaporated milk that turns the broth pale and slightly creamy. Served with rice on the side or in the soup.

Where to eat it:

Novena MRT · NS20 — closest to Pek Kio Market.
Telok Ayer MRT · DT18 — closest to Amoy Street Food Centre.
Maxwell MRT · TE17 — Maxwell Food Centre.

Dish 2 · Fish head bee hoon

Fish head bee hoon is the same milky-soup tradition built around a whole fish head — usually red snapper or batang — with rice vermicelli, deep-fried fish slices, tofu, vegetables and a generous splash of evaporated milk. It's hearty, oily-rich, and one of the most reliable "I'm tired and hungry" hawker lunches in Singapore.

Where to eat it:

Outram Park MRT · EW16 / NE3 / TE17 — closest for Ka-Soh.
Mountbatten MRT · CC7 — Old Airport Road Food Centre.
Aljunied MRT · EW9 — Geylang Tian Wai Tian.

Dish 3 · Singapore fish head curry

A large bowl of Singapore-style fish head curry with okra and tomato
Photo: Jacklee / Wikimedia Commons · CC BY-SA 4.0

Fish head curry is a Singapore original — invented in the 1950s when an enterprising South Indian cook, M.J. Gomez, decided to put a whole fish head into a Kerala-style curry and sell it to local Chinese diners who loved the head meat. The dish stuck. Today you can choose between the Indian style (heavier on tamarind, curry leaves, mustard seeds) and the Chinese style (lighter, with assam and a clearer broth).

Where to eat it:

Little India MRT · NE7 / DT12 — closest for Muthu's Race Course Road branch and The Banana Leaf Apolo.
Bedok MRT · EW5 — Ocean Curry Fish Head.
Upper Thomson MRT · TE8 — Karu's.
GoBus SG tip: fish soup hawker stalls often sell out by 2pm — the day's catch is only so much. Pin the closest hawker-centre MRT and the trip planner will tell you whether you have time for the bus or whether to walk.

Ordering vocabulary

A fish-soup day by MRT

  1. 11:30am — sliced fish soup at Pek Kio Market (Novena MRT).
  2. 2:00pm — train to Little India for an Indian fish head curry late lunch on a banana leaf.
  3. 7:00pm — if you have room, fish head bee hoon at Old Airport Road for supper (Mountbatten MRT).

Why GoBus SG helps here

Fish stalls and fish head curry places open and close on their own timings — some open only for lunch, some only for dinner, some take a Tuesday off. The trip planner means you can verify a stall is on your route at the right hour before you commit to the bus.

Open these stops in GoBus SG

Search any MRT or stop above for live arrivals across bus, MRT and LRT — with home-screen widgets and multi-modal trip planning.

← Back to all travel guides