Ossobuco alla Milanese
Singapore-style Ossobuco alla Milanese — cross-cut veal shanks braised slowly with vegetables, white wine and broth, finished with zesty gremolata for a comforting, family-style main.
About this dish
Ossobuco alla Milanese is a slow-braised Italian classic that sits beautifully alongside Singapore home cooking: hearty, convivial and perfect for sharing after a long day in the CBD or a relaxed weekend makan at home in Tiong Bahru or the East Coast. The dish features cross-cut veal shanks cooked low and slow until the meat is fall-off-the-bone tender and the marrow becomes a glossy, spoonable luxury — the kind of comfort that turns weekday dinners into small celebrations.
In a Singapore kitchen this ossobuco works well with either traditional saffron risotto alla Milanese or creamy polenta, and it also pairs surprisingly well with steamed jasmine rice for a local twist. The braise is built from soffritto-style aromatics — onion, carrot and celery — deglazed with white wine and simmered in rich beef or veal stock. A finishing gremolata of lemon zest, parsley and garlic cuts through the richness the way a squeeze of calamansi would lift a hawker-style dish.
This version includes small, practical notes for home cooks in Singapore: where to source veal or suitable substitutes at NTUC FairPrice, Cold Storage or local butcher stalls, and how to finish the sauce to suit our humid climate (reduce longer for a glossy, clingy jus). Serve it family-style for potlucks, a special weekend supper, or as part of a festive spread — the slow-braised flavours deepen overnight, so it’s also ideal for make-ahead entertaining.
Ingredients
- 1.2 kg veal shanks (about 4 pieces, 300 g each), cross-cut
- 30 g plain flour for dusting
- 2 tbsp vegetable oil or olive oil
- 40 g unsalted butter
- 1 medium onion (150 g), finely diced
- 1 large carrot (120 g), diced
- 2 stalks celery, diced
- 3 garlic cloves, crushed
- 150 ml dry white wine (e.g. Sauvignon Blanc)
- 500 ml beef or veal stock (hot)
- 1 x 400 g can plum tomatoes, crushed (or 150 g passata)
- 2 tbsp tomato paste (optional, for extra body)
- 2 bay leaves
- 1 tsp fresh thyme leaves or 1/2 tsp dried thyme
- Salt and freshly ground black pepper to taste
- Zest of 1 lemon
- 2 tbsp chopped flat-leaf parsley
- 1 small garlic clove, minced (for gremolata)
- 200 g arborio rice (for saffron risotto) or 300 g polenta (for creamy polenta) — optional side
- A pinch of saffron threads (about 0.1 g) soaked in 1 tbsp warm water — for risotto
- Extra parsley or lemon wedges to serve
Step-by-Step Method
- Pat the veal shanks dry with paper towel and season generously with salt and black pepper; dust all over with plain flour and shake off excess.
- Heat oil and half the butter in a heavy-based pot or Dutch oven over medium-high heat; brown the shanks in batches 3–4 minutes per side until deep golden — do not overcrowd the pan. Transfer browned shanks to a plate.
- Lower heat to medium and add the remaining butter; add onion, carrot and celery (soffritto) and sweat gently for 6–8 minutes until soft and translucent, stirring and scraping up browned bits for flavour.
- Add crushed garlic and tomato paste (if using), cook 1 minute, then pour in the white wine to deglaze; simmer 2–3 minutes until the wine has reduced by about half.
- Return the shanks to the pot, add crushed tomatoes, hot stock, bay leaves and thyme; the liquid should come halfway up the shanks — add a little more stock or water if needed.
- Bring to a gentle simmer, then cover with a tight-fitting lid and either place in a preheated oven at 160°C or leave on the stove over the lowest heat; simmer gently for 1½–2 hours until meat is tender and falling from the bone.
- About 10 minutes before serving, skim excess fat from the braising liquid, remove shanks and keep warm; reduce the sauce on medium-high heat to concentrate flavours and thicken slightly, about 6–8 minutes, then taste and adjust salt and acidity — a splash of lemon juice helps balance richness like a hawker stall balancing flavours.
- Make the gremolata by combining lemon zest, chopped parsley and minced garlic; rest for a few minutes to marry the flavours.
- If serving with saffron risotto: make risotto separately by toasting 200 g arborio rice in a knob of butter, gradually adding hot stock and the saffron infusion, stirring until creamy; finish with butter and grated Parmesan.
- If serving with polenta: cook polenta according to packet instructions with stock or water until thick and creamy, finish with butter and Parmesan if desired.
- Serve each veal shank over risotto or polenta, spoon over the reduced braising sauce, and scatter gremolata on top. Offer lemon wedges and crusty bread for mopping up the sauce.
Tips & Serving Ideas
- If veal is hard to source in Singapore, substitute beef shank or oxtail from NTUC FairPrice, Cold Storage or your local butcher; cook until equally tender.
- Brown the shanks well — this Maillard crust gives the braise deep flavour; use a heavy pot or Dutch oven for even heat.
- Gremolata must be fresh: chop parsley and zest lemon just before serving to keep the bright, citrusy finish that cuts through the rich sauce.
- Make ahead: ossobuco improves a day after cooking — refrigerate, then gently reheat over low heat; reduce the sauce before serving for a glossy finish.
- For a quicker weeknight option, finish the braise in a pressure cooker for 45–60 minutes, watching liquid levels to avoid burning.
- Saffron can be expensive in Singapore — a pinch goes a long way; bloom it in warm water before adding to risotto for the best colour and aroma.
- Adjust seasoning at the end rather than the start — slower reduction concentrates saltiness; a squeeze of lemon or splash of white wine vinegar brightens the final jus.
You might also like
More recipes to save for later.