MoreBetter — the more better choice in Singapore

9 Best Fish Soup in Singapore: Teochew Clear vs Cantonese Milky, and Which Is Worth the Queue (2026)

MoreBetter Editorial Team

MoreBetter Editorial Team

Fact-checked · Updated 17 August 2026

Verified
Contents

Fish soup in Singapore splits two ways: the clear Teochew broth that tastes of the fresh sliced fish, and the milky Cantonese version where the bones are deep-fried until the soup turns creamy. Both are cheap, comforting hawker staples, and most of the best stalls sit in old food centres that sell out by mid-afternoon. We checked every stall below in August 2026 for its price, hours and hawker centre. Here are nine spots worth the queue, each with the one thing it does well.

How we chose: we started from the fish soup stalls Singaporeans actually queue for, then checked each in August 2026 against its own listing: which hawker centre it is really in, what a bowl costs today, and the hours it keeps. We corrected a few addresses that circulate wrongly online, dropped nothing that is still frying, and ranked by how good the bowl is for the price and the wait, not by reputation alone. Most of these are lunch-only stalls that sell out, so the hours matter as much as the soup.

In a hurry? Our quick picks

  • Worth the queue: Han Kee at Amoy Street, for the thick, clean batang slices.
  • Best milky Cantonese: Jin Hua at Maxwell, creamy from fried bones, cooked to order.
  • Cheapest bowl: 127 Lor 1 in Toa Payoh, about $5 with no queue.
  • Open late: Xin Yuan Ji near Bugis, to 11pm when the food centres have shut.

At a glance

StallAreaBowlStyle
Han Kee Fish SoupAmoy St (Tanjong Pagar)$5 / $7 / $9Clear sliced fish
Piao Ji Fish PorridgeAmoy St (Tanjong Pagar)from $8Rich lard broth
Angel HorseAlbert Centre (Bugis)$5.50–6.50Clear Teochew
First StreetKovan$6.80 / $9.80 / $12.80Teochew batang
Jin HuaMaxwellfrom ~$4.50Cantonese milky
Xin Yuan JiBugisfrom $5.80Sit-down, open late
Mei XiangBerseh (Jalan Besar)~$6.50Black & white
Blanco CourtBeach Rd (Bugis)~$7Fried fish
127 Lor 1Toa Payoh~$5Heartland porridge

1. Han Kee Fish Soup — Amoy Street

★ Top pick Weekday lunch only
Price$5 / $7 / $9
HoursMon–Fri 11am–3pm (sells out)
Nearest MRTTanjong Pagar / Telok Ayer
StyleClear sliced fish
Han Kee Fish Soup stall, Amoy Street

Photo: Google Maps

Han Kee cuts its batang mackerel thick and fresh, with none of the fishy edge, and the clean sliced fish soup is the one everyone lines up for. It has easily the longest queue at Amoy Street Food Centre, and at peak the wait can run close to an hour. Bowls are $5, $7 or $9 by size, in soup, bee hoon or porridge.

  • Go for: the sliced fish soup, thick batang and all, in the size that matches your hunger. Ask for it in soup to taste the broth at its cleanest.
  • Worth it: the bowl most worth the queue on this list if you go before the lunch rush. Weekday lunch only and it sells out, so the honest catch is the timing, not the soup.
  • Where: Amoy Street Food Centre #02-129, Tanjong Pagar.

2. Piao Ji Fish Porridge — Amoy Street

PriceFish soup from $8; fish-prawn $13–22
Hours~10.30am–3.30pm (closed Thu)
Nearest MRTTanjong Pagar / Telok Ayer
StyleRich lard broth
Piao Ji Fish Porridge, Amoy Street

Photo: Google Maps

Piao Ji is Han Kee's neighbour and rival at Amoy Street, and its draw is a heartier broth built on fried pork lard and shallots, best in the fish-and-prawn bowl that runs $13, $16 or $22 by size. A plainer fish soup starts at $8. The batang slices are thick and naturally sweet, and the queue can stretch past an hour at peak.

  • Go for: the fish-and-prawn bowl, where the lard-and-shallot broth is at its richest. The plain fish soup from $8 if you want it lighter.
  • Worth it: the pick over Han Kee when you want a fuller, richer bowl and do not mind paying more for the prawns. Same long Amoy Street queue, so come off-peak.
  • Where: Amoy Street Food Centre, Tanjong Pagar.

3. Angel Horse Teochew Fish Soup — Bugis

30+ years
Price$5.50–6.50
HoursTue–Sat, from 11am
Nearest MRTBugis / Rochor
StyleClear Teochew
Angel Horse Teochew Fish Soup, Albert Centre

Photo: Google Maps

Angel Horse keeps it simple: a clear, light Teochew broth with plenty of fish slices, no milk and no fried fish, best paired with its house salted-bean chilli. More than 30 years in at Albert Centre on Queen Street, it still draws a 20-minute queue at lunch. Bowls are around $5.50 to $6.50.

  • Go for: the clear sliced fish soup with the house salted-bean chilli on the side. This is the bowl to taste what Teochew broth is meant to be.
  • Worth it: one of the more honest bowls of clear fish soup in town, at a fair price with only a short wait. The smart central pick when you want light over rich.
  • Where: Albert Centre Market & Food Centre, Queen Street, Bugis.

4. First Street Teochew Fish Soup — Kovan

Since the 1980s
Price$6.80 / $9.80 / $12.80
Hours8am–3pm (closed Mon)
Nearest MRTKovan
StyleTeochew batang
First Street Teochew Fish Soup, Kovan

Photo: Google Maps

The owner started as a fish vendor and opened this stall on Upper Serangoon Road in the 1980s; his sons run it now. The batang sliced fish soup is $6.80, $9.80 or $12.80 by size, the smallest bowl holding about seven slices and the largest close to sixteen. Add rice for 60 cents or mee sua for a dollar. The fish is fresh and firm, and the queue can hit 45 minutes.

  • Go for: the batang sliced fish soup, sized to your hunger, with rice or mee sua added. The fresh, firm slices are the whole point.
  • Worth it: a proper Teochew bowl in the east from a family that has done it for 40 years, cheaper and quieter than the town stalls. Go early, it opens at 8am and the queue builds.
  • Where: 1014 Upper Serangoon Road, Kovan.

5. Jin Hua Fish Head Bee Hoon — Maxwell

★ Top pick Cooked to order
Pricefrom ~$4.50
Hours~11.15am–7.30pm (closed Thu)
Nearest MRTMaxwell / Tanjong Pagar
StyleCantonese milky
Jin Hua Fish Head Bee Hoon, Maxwell

Photo: Google Maps

Jin Hua has been doing Cantonese fish soup at Maxwell for over 20 years, and its Old Airport Road outlet carries a Michelin mention. The soup is milky from fried bones rather than added milk, though you can ask for milk stirred in. A basic bowl starts near $4.50, with grouper or a whole fish head costing more. Uncle cooks each bowl to order, so the queue takes a while.

  • Go for: the fish head bee hoon in the milky broth, or a sliced fish bowl if you want it lighter. Ask for milk stirred in only if you want it richer still.
  • Worth it: the standout milky Cantonese bowl here, and one of the few open into the evening. The cooked-to-order wait is the catch, so it rewards a patient, off-peak visit.
  • Where: Maxwell Food Centre #01-77, Tanjong Pagar.

6. Xin Yuan Ji — Bugis

Open to 11pm
Pricefrom $5.80
HoursDaily, to ~11pm
Nearest MRTBugis
StyleSit-down, sliced/fried
Xin Yuan Ji, Bugis

Photo: Google Maps

Xin Yuan Ji is a sit-down shop, not a hawker stall, with a wider menu that runs to a charcoal fish-head steamboat. The everyday order is the sliced or fried fish bee hoon from $5.80, cheap for a proper cooked bowl. Now past 30 years at its Tan Quee Lan Street original near Bugis, its real edge is the hours: it stays open until 11pm daily.

  • Go for: the sliced or fried fish bee hoon from $5.80, or the charcoal fish-head steamboat if you are a group. A cooked bowl for hawker money.
  • Worth it: the pick when the food-centre stalls have long shut, since it runs to 11pm daily. It packs out with office workers, so go early or off-peak.
  • Where: Tan Quee Lan Street, Bugis.

7. Mei Xiang Black & White Fish Soup — Jalan Besar

Lunch only, sells out
Price~$6.50
HoursTue–Fri 11.30am–2pm
Nearest MRTJalan Besar / Bendemeer
StyleBlack & white
Mei Xiang Black and White Fish Soup, Berseh

Photo: Google Maps

Mei Xiang serves a single dish: the black-and-white fish soup, black for the fried fish slices and white for the fresh fish meat, both in the one bowl at about $6.50. A middle-aged couple make every bowl themselves, so there is no menu to agonise over and a few firm house rules, dine-in only among them. It opens a short lunch window and often sells out early.

  • Go for: the black-and-white bowl, the only thing they make, so you get fried and fresh fish in the one soup. There is nothing else to decide.
  • Worth it: the neat answer if you cannot choose between fried and fresh. The tight lunch window and early sell-out are the real catch, so time the visit and mind the house rules.
  • Where: Berseh Food Centre, 166 Jalan Besar.

8. Blanco Court Fried Fish Noodles — Beach Road

Cash only
Price~$7 (bowls $7–11)
HoursMon–Sat, ~9.30am–8pm
Nearest MRTBugis / Nicoll Highway
StyleFried fish
Blanco Court Fried Fish Noodles, Beach Road

Photo: Google Maps

Blanco Court on Beach Road is built around fried fish, with generous chunks in a hearty broth, and the fried fish soup runs about $7, most bowls landing between $7 and $11. There is a creamy version if you want it richer, and you can add pork slices, egg or tofu to bulk it up. It is cash only and a short walk from Bugis MRT.

  • Go for: the fried fish soup, generous chunks and all, or the creamy version if you want it richer. Add pork, egg or tofu to make it a full meal.
  • Worth it: the one to beat for fried fish, and it keeps longer daytime hours than the food-centre stalls. Bring cash, since it does not take cards.
  • Where: 325 Beach Road, near Bugis.

9. 127 Lor 1 Toa Payoh Fish Porridge — Toa Payoh

Cheapest bowl
Price~$5
Hours9am–2pm (closed Mon–Tue)
Nearest MRTToa Payoh / Braddell
StyleHeartland porridge

Tucked in Toa Payoh West Market on Lorong 1, this stall draws neighbourhood crowds for a fish soup or fried fish bee hoon at about $5, with a sour-and-spicy seafood soup from $5.50. The broth is simmered until it turns naturally sweet, and the fish is cut neatly. It is a morning and lunch stop, and the cheapest bowl on this list.

  • Go for: the fish soup or fried fish bee hoon at about $5, or the sour-and-spicy seafood soup for something with a kick. All of it is honestly cheap.
  • Worth it: the best-value bowl here and no queue to speak of, a proper heartland breakfast or lunch. It closes at 2pm and shuts Mondays and Tuesdays, so plan the morning.
  • Where: 127 Toa Payoh West Market & Food Centre, Lorong 1.

What locals actually recommend (the Reddit take)

Search Reddit's r/singapore or the food forums and the fish soup debate is really clear-versus-milky, plus one honest gripe about queues. The Amoy Street pair, Han Kee and Piao Ji, get named again and again as worth it, but almost always with the caveat to go off-peak or skip the hour-long wait entirely.

The contrarian thread that keeps coming up: a good neighbourhood bowl with no queue often beats a famous one you wait 45 minutes for. It matches our list. The heartland picks like 127 Lor 1 and First Street give you a fresh, cheap bowl without the town-centre crush, and Jin Hua wins the milky camp for the broth rather than the hype.

The one thing everyone agrees on: get there before the lunch rush, because the best stalls are lunch-only and sell out.

Other names worth knowing

The fish soup stalls people search for a lot that sit just outside our nine, and where they fit.

  • Fishball Story, SingaporeFishball Story (Timbre+ and stalls). A young hawker's Bib Gourmand take on fishball noodles, with handmade fishballs in a clean fish soup. A newer name worth the queue. Photo: Google Maps.
  • Ru Ji Kitchen, SingaporeRu Ji Kitchen (Holland Drive). A beloved fishball noodle and fish soup stall with springy handmade fishballs, and a long queue to match. Go early. Photo: Google Maps.
  • Song Fish Soup, SingaporeSong Fish Soup (Ghim Moh). A Michelin-listed sliced fish soup in Ghim Moh Market, clean broth and thick fish. Worth the detour if you are in the west. Photo: Google Maps.

So which should you go to?

Pick by broth, area and timing:

  • Clear Teochew: Angel Horse at Albert Centre or First Street in Kovan.
  • Milky Cantonese: Jin Hua at Maxwell.
  • Fried fish: Blanco Court on Beach Road, or Mei Xiang for fried-and-fresh in one bowl.
  • Worth the queue, off-peak: Han Kee or Piao Ji at Amoy Street.
  • Open late: Xin Yuan Ji near Bugis, to 11pm.
  • Cheap, near home, no queue: 127 Lor 1 in Toa Payoh.

For a first bowl, Han Kee is the one to queue for if you time it, and 127 Lor 1 is the smart everyday pick when you would rather not wait at all.

Fish soup in Singapore: quick questions

How much does a bowl of fish soup cost in 2026?

A standard sliced fish soup runs about $5 to $7 at most hawker stalls here, with Han Kee starting at $5, Jin Hua near $4.50 and heartland bowls at 127 Lor 1 around $5. Larger bowls with grouper, pomfret, fish head or prawns go higher, up to about $22 for Piao Ji's big fish-and-prawn soup.

What is the difference between Teochew and Cantonese fish soup?

Teochew fish soup is a clear, light broth that lets the fresh fish come through, like Angel Horse and First Street. Cantonese-style soup, such as Jin Hua, is milky and richer, and the good versions get that creaminess from deep-fried fish bones rather than any added milk.

What is black and white fish soup?

It is a single bowl with both kinds of fish: black for the fried fish slices and white for the fresh, poached fish meat, in the one broth. Mei Xiang at Berseh Food Centre is the stall known for it, so you get the firm bite of fried fish and the clean taste of fresh fish together.

Which fish soup is open late or in the evening?

Most of these are lunch-only stalls, but Xin Yuan Ji near Bugis stays open to about 11pm daily, and Jin Hua at Maxwell runs to about 7.30pm, later than the usual food-centre close. The rest, including Han Kee, Mei Xiang and 127 Lor 1, shut by mid-afternoon.

Where can I get fish soup in the heartlands?

127 Lor 1 in Toa Payoh West Market does a roughly $5 bowl from 9am, and First Street has its long-running Upper Serangoon original in Kovan. These are cheaper and quieter than the central food centres, though both close early, so treat them as a morning or lunch stop.

Which fish soup is worth queueing for?

Han Kee at Amoy Street is the one most people say is worth the wait, for its thick, clean batang slices, with neighbour Piao Ji a close second for a richer broth. Both can run close to an hour at peak, so the trick is to go before the lunch rush. If you would rather not queue at all, a heartland bowl like 127 Lor 1 is the honest alternative.

More Singapore food guides

Same honest, homework-done approach for other cravings: our best zi char in Singapore, best chicken rice and best seafood restaurants.

Related guides