If you crave a dish that brings vibrant color, rich aroma, and comforting flavors all in one pot, then this Malaysian Tomato Rice (Nasi Tomato) Recipe is your new best friend. Imagine fluffy basmati rice cooked with a fragrant blend of spices, luscious tomatoes, and a hint of creamy evaporated milk that gives it a silky texture. It’s an iconic Malaysian favorite that feels like a warm hug on a plate, perfect for any meal of the day or to impress guests with something both simple and special. Let me take you through how to make this delightful dish that truly celebrates the heart of Malaysian home cooking.

Ingredients You’ll Need
What makes this Malaysian Tomato Rice (Nasi Tomato) Recipe so wonderful is how it transforms a handful of everyday ingredients into something extraordinary. Each item plays a special role—whether it’s the warmth from whole spices or the sweetness of raisins—together creating a symphony of flavors and textures that you will absolutely love.
- Basmati rice (2 cups): The long grains cook up fluffy and separate, perfect for absorbing all the aromatic flavors.
- Ghee or butter (2 tbsp): Adds richness and a smooth mouthfeel that elevates every bite.
- Cinnamon stick, cloves, cardamom pods, star anise: These whole spices infuse the rice with warm, fragrant notes that are essential to its Malaysian soul.
- Onion paste (2 tbsp), garlic paste (1 tbsp), ginger paste (1 tbsp): The aromatic base that brings depth and a subtle spicy kick.
- Pandan leaves (2, tied): Infuse a subtle grassy aroma that’s unmistakably Southeast Asian.
- Evaporated milk (60 ml): Adds creaminess and balances the acidity of the tomatoes beautifully.
- Tomatoes (2 medium, sliced into wedges): Bring fresh, tangy sweetness and vibrant red color.
- Tomato puree (2 tbsp): Deepens the tomato flavor and enhances the dish’s signature hue.
- Water (2 cups or as needed): For cooking the rice perfectly.
- Salt (1 tsp): The simple flavor enhancer that makes all the flavors shine.
- Raisins (2-3 tbsp): Add little bursts of sweetness that contrast delightfully with the spices.
- Toasted cashew nuts (a handful): Bring crunchy texture and a buttery nutty finish.
- Fried shallots: Topping that adds crispy texture and caramelized notes.
- Coriander leaves: Fresh green garnish to brighten every serving.
How to Make Malaysian Tomato Rice (Nasi Tomato) Recipe
Step 1: Prepare the Rice
Start by rinsing your basmati rice under running water until it runs clear; this step washes away excess starch to keep your rice light and fluffy. Soak the rice for 30 minutes—this little soak allows the grains to absorb water for even cooking, making your final dish perfectly tender.
Step 2: Sauté the Aromatics
Melt ghee or butter in a pan over medium heat, then toast the whole spices—cinnamon, cloves, cardamom, and star anise—until their lovely fragrance fills your kitchen. Next, stir in the onion, garlic, and ginger pastes, cooking them until the mixture turns slightly golden and releases mouthwatering aromas.
Step 3: Cook the Tomato Mixture
Add the tomato puree, sliced tomatoes, tied pandan leaves, and evaporated milk to the pan. Sauté this mix gently until it thickens and the tomatoes soften, creating a rich, creamy, and vibrant base that will flavor your rice beautifully.
Step 4: Combine and Cook
If you’re using a rice cooker, pour the soaked rice into it and add the tomato mixture, water, salt, raisins, and cashew nuts. Mix them gently then set your cooker to the “white rice” setting. Allow the rice to rest for about 10 minutes once cooked before fluffing it up with a paddle.
For stovetop cooking, do the aromatic sauté and tomato mix in a heavy pot, then add the soaked rice, raisins, cashews, and water. Bring to a boil, reduce to low, cover tightly, and cook until the rice is fluffy—usually 15 to 18 minutes. Let it rest off heat before fluffing.
Using an Instant Pot? Sauté the ingredients in the pot, add rice and liquids, then seal and pressure cook on high for 6 minutes. Let the pressure naturally release for 10 minutes, then fluff the rice gently.
Step 5: Garnish and Serve
Don’t skip this step! Sprinkle toasted cashew nuts, fried shallots, and fresh coriander over the top to add layers of texture and fragrance that make Malaysian Tomato Rice (Nasi Tomato) Recipe truly unforgettable.
How to Serve Malaysian Tomato Rice (Nasi Tomato) Recipe

Garnishes
Fried shallots and coriander leaves are classic garnishes that add crispness and vibrant freshness. They create an exciting contrast to the creamy, soft rice and highlight the spices beautifully.
Side Dishes
This tomato rice is a fantastic centerpiece with complementary dishes like ayam masak merah (spicy tomato chicken), rich curries, or even acar—a tangy pickled vegetable medley—that brings brightness and balance to the meal.
Creative Ways to Present
For a fun twist, serve the rice molded in bowls or shaping it into neat domes on the plate to create an eye-catching presentation. Adding a wedge of lime or a side of sambal chili can also spice things up for those who like an extra kick.
Make Ahead and Storage
Storing Leftovers
Cool the leftover Malaysian Tomato Rice (Nasi Tomato) Recipe completely before transferring it to an airtight container. It will keep well in the refrigerator for up to three days while maintaining most of its flavor and texture.
Freezing
You can freeze this rice easily! Portion it into freezer-safe containers or bags, and it should remain tasty for up to one month. Just thaw overnight in the fridge before reheating.
Reheating
The best way to reheat is gently on the stovetop with a splash of water to restore moisture, stirring occasionally until warmed through. A microwave works too but cover it to keep it from drying out. Fresh garnishes added after reheating bring the dish back to life.
FAQs
Can I use other types of rice for this recipe?
Basmati rice is preferred for its fluffy texture and aroma, but you can experiment with jasmine or regular long-grain rice. Just adjust the soaking and cooking times accordingly for best results.
What if I don’t have all the whole spices?
The whole spices really build the characteristic fragrance. If missing some, you can use ground versions sparingly or omit them, but the dish may lose a little depth. Focus on the cinnamon and cardamom as essentials if you must simplify.
Is this recipe suitable for vegans?
To make it vegan, swap ghee or butter with vegetable oil or vegan margarine and use coconut milk instead of evaporated milk. The rest of the ingredients are plant-based.
Can I make this recipe spicier?
Definitely! Adding chopped chili or a spoonful of chili paste when sautéing the aromatics amps up the heat without overpowering the tomato richness.
How do pandan leaves affect the flavor?
Pandan leaves add a floral, slightly grassy aroma that’s subtle but makes a noticeable difference in traditional Malaysian cooking. They elevate the dish from ordinary to authentic.
Final Thoughts
Making this Malaysian Tomato Rice (Nasi Tomato) Recipe is like inviting a burst of Malaysian warmth straight to your table. Once you try it, you’ll understand why it’s a beloved staple—offering layers of flavor that feel both comforting and exciting. It’s easy enough for a weekday dinner but special enough to share on occasions. So gather the ingredients, fire up your stove, and let this vibrant rice dish bring a little joy and sunshine into your kitchen!
Print
Malaysian Tomato Rice (Nasi Tomato) Recipe
- Prep Time: 35 minutes
- Cook Time: 15 minutes
- Total Time: 50 minutes
- Yield: 4 servings
- Category: Main Course
- Method: Stovetop
- Cuisine: Malaysian
- Diet: Halal
Description
Nasi Tomato, or Malaysian Tomato Rice, is a flavorful and aromatic rice dish cooked with fragrant spices, tomatoes, and creamy evaporated milk. This dish combines fragrant basmati rice with aromatic ghee-fried spices, sautéed tomato paste, and fresh tomatoes for a rich, slightly tangy taste. Traditionally served alongside curries, spicy chicken, or pickled vegetables, it makes a delightful meal that captures the essence of Malaysian comfort food.
Ingredients
Rice and Spices
- 2 cups basmati rice (about 400g)
- 1 cinnamon stick
- 4 cloves
- 4 cardamom pods
- 2 star anise
- 2 pandan leaves, tied into knots
- 1 tsp salt
Aromatic Mixture
- 2 tbsp ghee or butter
- 2 tbsp onion paste
- 1 tbsp garlic paste
- 1 tbsp ginger paste
Tomato and Liquid Components
- 2 tbsp tomato puree
- 2 medium tomatoes, sliced into wedges
- 60 ml evaporated milk (¼ cup)
- 2 cups water (or as needed for rice cooker)
Add-ins and Garnishes
- 2–3 tbsp raisins
- Handful toasted cashew nuts
- Fried shallots (for garnish)
- Coriander leaves (for garnish)
Instructions
- Prepare the Rice: Rinse the basmati rice under running water until the water runs clear to remove excess starch. Then soak the rice in water for 30 minutes to allow the grains to soften and expand, helping them cook evenly. Drain well before cooking.
- Sauté the Aromatics: Heat ghee or butter in a pan over medium heat. Add the cinnamon stick, cloves, cardamom pods, and star anise. Fry these whole spices until they become fragrant, releasing their essential oils. Stir in the garlic paste, ginger paste, and onion paste, sautéing until the mixture is aromatic and slightly golden brown.
- Cook the Tomato Mixture: Add the tomato puree, sliced fresh tomatoes, pandan leaves, and evaporated milk to the sautéed spices. Cook the mixture, stirring occasionally, until it thickens slightly and the tomatoes soften, allowing the flavors to meld together beautifully.
- Combine and Cook – Rice Cooker Method: Transfer the soaked and drained rice to the rice cooker bowl. Pour the prepared tomato mixture and water over the rice. Season with salt, then add the raisins and toasted cashew nuts. Gently stir everything to combine without breaking the rice grains. Cook using the rice cooker’s “white rice” setting. When done, let the rice rest inside the cooker for 10 minutes before fluffing with a paddle.
- Combine and Cook – Stovetop Method: In a heavy-bottomed pot or Dutch oven, repeat the sauté steps for aromatics and tomato mixture. Then add the soaked rice, raisins, and cashew nuts. Pour in water and season with salt. Stir gently to combine. Bring to a boil over medium-high heat. Once boiling, reduce heat to low, cover with a tight-fitting lid, and cook undisturbed for 15–18 minutes until the rice is tender and fluffy. Remove from heat and let it rest, covered, for 10 minutes before fluffing with a fork.
- Combine and Cook – Instant Pot Method: Set the Instant Pot to Sauté mode and prepare the aromatic-tomato mixture steps inside the pot. Add the soaked rice, water, raisins, and cashew nuts. Stir well to combine. Close the lid, seal the valve, and pressure cook on HIGH for 6 minutes. Allow the pressure to naturally release for 10 minutes, then carefully manually release any remaining pressure. Fluff the rice gently with a fork.
- Garnish and Serve: Transfer the cooked tomato rice to a serving platter. Top liberally with fried shallots and fresh coriander leaves for a burst of flavor and texture. Serve the Nasi Tomato hot alongside Malaysian curries, ayam masak merah (spicy tomato chicken), or acar (pickled vegetables) for a complete traditional meal.
Notes
- Soaking the basmati rice before cooking helps achieve fluffy, separate grains.
- If you prefer a richer flavor, substitute ghee with butter or a mixture of both.
- Adjust the tomato puree quantity based on your desired tanginess and tomato intensity.
- Pandan leaves add a subtle aroma; if unavailable, you can omit them without greatly impacting the dish.
- For added texture, lightly toast the cashew nuts before adding them.
- Resting the rice after cooking helps it steam and finish absorbing any residual moisture.
- This dish can be easily adapted for different cooking appliances like rice cooker, stovetop, or Instant Pot as detailed above.

