Dairy-Free Indian Butter Chicken
A rich and comforting dairy-free butter chicken with tender yogurt-marinated chicken simmered in a silky blended tomato sauce scented with garam masala, ginger, and garlic. Dairy-free yogurt, coconut milk, and dairy-free butter recreate the classic luxurious finish without any cream or dairy.
Ingredients
Chicken
- 1½ lbBoneless, skinless chicken thighs, cut into bite-size pieces
- ½ cupPlain unsweetened dairy-free yogurt (coconut or almond)
- 1 tbspLemon juice
- 3 clovesGarlic cloves, minced
- 1 tbspFresh ginger, grated
- 1 tspGaram masala
- ½ tspGround cumin
- 1 tspFine salt
Sauce
- 2 tbspNeutral oil (avocado, grapeseed, or refined coconut)
- 1 mediumYellow onion, finely diced
- 4 clovesGarlic cloves, minced
- 1 tbspFresh ginger, grated
- 2 tbspTomato paste
- 2 tspGaram masala
- 1 tspGround cumin
- 1 tspGround coriander
- 1 tspSweet paprika
- ¼ tspSmoked paprika
- 1¼ tspKashmiri chili powder — substitutes for the two paprikas above for more authentic color (optional)
- ½ tspTurmeric
- ¼ tspCayenne pepper
- 15 ozCrushed tomatoes
- ¾ cupFull-fat coconut milk
- 1 tbspCashew butter — for restaurant-style body (optional)
Finish
- 2 tbspDairy-free butter
- 1½ tspBrown sugar (or honey)
- 1 tspKasuri methi (dried fenugreek leaves), crushed between palms — highly recommended (optional)
- ½ tspFine salt
Garnish
- ¼ cupFresh cilantro, chopped
Instructions
- 1
In a bowl, combine the chicken with the dairy-free yogurt, lemon juice, garlic, ginger, garam masala, cumin, and salt. Toss to coat well. Cover and marinate at room temperature for up to 15 minutes, or refrigerate for 30 minutes to 4 hours (overnight is even better). The yogurt both tenderizes the chicken and carries the spices deep into the meat.
- 2
Heat 1 tablespoon of the oil in a large skillet or Dutch oven over medium-high heat. Shake excess marinade off the chicken, then add it to the pan in a single layer and cook for 4 to 5 minutes, turning once, until lightly charred in spots but not fully cooked through. Work in batches if needed to avoid steaming. Transfer the chicken to a plate.
- 3
Reduce the heat to medium and add the remaining 1 tablespoon oil. Add the onion and cook for 6 to 8 minutes until softened and lightly golden.
- 4
Add the garlic and ginger and cook for 30 seconds until fragrant. Stir in the tomato paste, garam masala, cumin, coriander, paprikas (or Kashmiri chili powder if using), turmeric, and cayenne. Cook for 1 minute, stirring constantly, until the spices smell toasted and the tomato paste darkens slightly.
- 5
Pour in the crushed tomatoes and coconut milk, stirring to combine. If using cashew butter, whisk it in now. Bring to a gentle simmer and cook for 8 to 10 minutes, stirring occasionally, until the sauce thickens slightly and the raw tomato edge cooks off.
- 6
Blend the sauce until smooth and silky, either directly in the pan with an immersion blender or by transferring to a countertop blender and returning it to the pan. This is what gives butter chicken its signature restaurant-style texture.
- 7
Return the chicken and any collected juices to the pan. Reduce the heat to medium-low and simmer for 8 to 10 minutes, stirring occasionally, until the chicken is cooked through and the sauce is thick, smooth, and glossy.
- 8
Stir in the dairy-free butter, brown sugar, crushed kasuri methi (if using), and salt. Let the dairy-free butter melt into the sauce and cook off heat for 2 to 3 minutes to let the flavors meld. Taste and adjust with more salt or a pinch more sugar if the tomatoes taste too sharp. Scatter with chopped cilantro and serve hot.
Dairy Substitutions Used
Traditional butter chicken uses yogurt in the marinade and butter and cream in the sauce. In this dairy-free version, plain unsweetened dairy-free yogurt (coconut or almond) replaces dairy yogurt to tenderize the chicken and carry spices; full-fat coconut milk replaces cream for silky body and richness; and dairy-free butter delivers the signature buttery finish. An optional spoonful of cashew butter mimics the nutty undertone of restaurant butter chicken that traditionally comes from cashew or almond paste.
Tips & Variations
Use chicken thighs if possible: They stay juicier than breast meat during simmering and are more forgiving if slightly overcooked.
Longer marinade, better flavor: A quick 15-minute rest on the counter works in a pinch, but 30 minutes to 4 hours in the refrigerator (or overnight) makes a real difference. The yogurt's mild acidity tenderizes the meat while the spices penetrate deeper than a quick marinade allows. Raw chicken should not sit at room temperature longer than 15 minutes for food safety.
Kasuri methi is the secret weapon: If you can find dried fenugreek leaves at an Indian grocer, online, or some Whole Foods stores, they transform this dish from a generic creamy tomato curry into something that actually tastes like restaurant butter chicken. Crush them between your palms before adding to release the aroma.
Kashmiri chili powder vs. paprika: Kashmiri chili powder gives butter chicken its signature vibrant red-orange color with mild heat. If you don't have it, the combination of sweet paprika and a touch of smoked paprika delivers a very close flavor and color — just use one or the other, not both.
Cashew butter for body: A single tablespoon of cashew butter whisked into the sauce adds the nutty richness found in most restaurant versions. Skip it if you don't keep it on hand — the sauce is still delicious without.
Char equals flavor: Let the chicken pick up some browning in the pan before it finishes in the sauce. That extra color adds depth to the final dish.
Coconut milk choice matters: Full-fat coconut milk from a can gives the sauce its silky texture. Light coconut milk or the refrigerated carton style will make the sauce noticeably thinner and less rich.
Control the heat: This version is mildly spicy. Increase the cayenne for more heat, or reduce it for a gentler family-style version.
Serving ideas: Serve with basmati rice, naan, or roasted cauliflower, and add a squeeze of lemon at the table if you like a brighter finish.