Butter chicken is one of those dishes I always thought I couldn’t make at home without a ton of cream and butter. Turns out, I was wrong.
This version is completely dairy free, and honestly, you won’t miss the dairy at all. The coconut milk does all the work to keep the sauce rich and smooth.

The chicken gets marinated first, which makes it tender and full of flavor. Then it simmers in a warm, spiced tomato sauce until everything comes together.
It matters to me that this recipe is dairy free because so many people can’t have dairy but still want to enjoy classic comfort food like this.
Serve it with basmati rice or some warm dairy free naan, and you’ve got a meal that feels special but is actually pretty simple to make.
Why This Recipe Is a Keeper
Creamy Without Dairy – Full-fat coconut milk creates a silky, luxurious sauce while keeping every spoonful completely dairy free.
Tender Chicken – Yogurt, lemon, ginger, and garam masala help the chicken stay tender and flavorful from the first bite.

Layered Flavor – Toasted spices, golden onion, garlic, and ginger build a warm, fragrant flavor that tastes carefully developed.
Balanced Sauce – Crushed tomatoes bring bright acidity, while coconut milk softens the spices into a perfectly balanced sauce.
Here’s What You’ll Need
For The Chicken
- 1 1/2 Pounds Boneless Skinless Chicken Thighs, Cut Into 1-Inch Pieces
- 1/2 Cup Unsweetened Plain Dairy Free Yogurt
- 1 Tablespoon Lemon Juice
- 2 Garlic Cloves, Grated
- 1 Teaspoon Fresh Ginger, Grated
- 1 Teaspoon Ground Garam Masala
- 1 Teaspoon Paprika
- 1/2 Teaspoon Ground Cumin
- 1 Teaspoon Kosher Salt
For The Sauce
- 3 Tablespoons Dairy Free Butter
- 1 Yellow Onion, Finely Chopped
- 3 Garlic Cloves, Minced
- 1 Tablespoon Fresh Ginger, Minced
- 2 Teaspoons Ground Garam Masala
- 1 Teaspoon Ground Cumin
- 1/2 Teaspoon Ground Turmeric
- 1/4 Teaspoon Cayenne Pepper
- 1 Can Crushed Tomatoes, 28 Ounces
- 1 Cup Full-Fat Coconut Milk
- 1 Teaspoon Kosher Salt
- 2 Tablespoons Fresh Cilantro, Chopped
How to Make It
Step 1
Combine the chicken, dairy free yogurt, lemon juice, garlic, ginger, garam masala, paprika, cumin, and salt in a bowl. Cover and refrigerate for at least 30 minutes or up to 12 hours.
Step 2
Melt the dairy free butter in a large deep skillet over medium-high heat. Add the marinated chicken in a single layer and cook for 5 to 6 minutes, turning occasionally, until lightly browned. Transfer the chicken to a plate.
Step 3
Reduce the heat to medium and add the onion to the skillet. Cook for 6 to 8 minutes until soft and golden.
Step 4
Add the garlic, ginger, garam masala, cumin, turmeric, and cayenne. Cook for 1 minute, stirring constantly, until the spices are fragrant.
Step 5
Pour in the crushed tomatoes and salt. Simmer for 12 to 15 minutes until the sauce darkens slightly and thickens.
Step 6
Stir in the coconut milk and return the chicken and any juices to the skillet. Simmer gently for 8 to 10 minutes, until the chicken is cooked through and the sauce is silky.
Step 7
Taste and adjust the salt or cayenne. Garnish with cilantro and serve with basmati rice or warm dairy free naan.

Recipe Tips
Choose a Thick Dairy Free Yogurt
I recommend using a thick, unsweetened dairy free yogurt for the marinade. Coconut yogurt works especially well because it coats the chicken evenly and adds richness without making the marinade watery.
If your yogurt looks thin, stir it well before measuring and let any extra liquid drain off. A thick marinade stays on the chicken better and helps it develop more color in the skillet.
Tip 2
Give the Marinade Enough Time
Let the chicken marinate for at least 30 minutes, but aim for 4 to 8 hours when possible. This gives the garlic, ginger, lemon, and spices enough time to flavor each piece.

Try not to go beyond 12 hours. The lemon juice can change the texture of the chicken if it sits for too long.
Tip 3
Cook the Chicken in Batches
You will get the best results if the chicken fits in one layer with a little room between the pieces. If your skillet is crowded, cook the chicken in two batches.
Let the extra marinade drip back into the bowl before adding each piece. Too much marinade in the skillet creates extra moisture, which keeps the chicken from turning golden.
What to Make Next
- Dairy Free Cajun Shrimp Alfredo
- Dairy Free Creamy Mushroom Stroganoff
- Dairy Free Creamy Tuscan Chicken
- Dairy Free Creamy White Chicken Chili
- Dairy Free Lasagna with Cashew Ricotta
Popular Questions
What can I use instead of dairy free yogurt for the marinade?
Use an unsweetened dairy free yogurt made from coconut, oat, almond, or soy milk. Choose a plain variety so the marinade keeps its savory flavor.
If you do not have dairy free yogurt, use 1/2 cup full-fat coconut milk with the lemon juice, though the chicken may be slightly less tender.
Dairy Free Butter Chicken
Ingredients
- 1 1/2 lb Boneless Skinless Chicken Thighs, Cut Into 1-Inch Pieces
- 1/2 cup Unsweetened Plain Dairy Free Yogurt
- 1 tbsp Lemon Juice
- 2 cloves Garlic, Grated
- 1 tsp Fresh Ginger, Grated
- 1 tsp Ground Garam Masala
- 1 tsp Paprika
- 1/2 tsp Ground Cumin
- 1 tsp Kosher Salt
- 3 tbsp Dairy Free Butter
- 1 Yellow Onion, Finely Chopped
- 3 cloves Garlic, Minced
- 1 tbsp Fresh Ginger, Minced
- 2 tsp Ground Garam Masala
- 1 tsp Ground Cumin
- 1/2 tsp Ground Turmeric
- 1/4 tsp Cayenne Pepper
- 1 can Crushed Tomatoes, 28 Ounces
- 1 cup Full-Fat Coconut Milk
- 1 tsp Kosher Salt
- 2 tbsp Fresh Cilantro, Chopped
Instructions
- Combine the chicken, dairy free yogurt, lemon juice, garlic, ginger, garam masala, paprika, cumin, and salt in a bowl. Cover and refrigerate for at least 30 minutes or up to 12 hours.
- Melt the dairy free butter in a large deep skillet over medium-high heat. Add the marinated chicken in a single layer and cook for 5 to 6 minutes, turning occasionally, until lightly browned. Transfer the chicken to a plate.
- Reduce the heat to medium and add the onion to the skillet. Cook for 6 to 8 minutes until soft and golden.
- Add the garlic, ginger, garam masala, cumin, turmeric, and cayenne. Cook for 1 minute, stirring constantly, until the spices are fragrant.
- Pour in the crushed tomatoes and salt. Simmer for 12 to 15 minutes until the sauce darkens slightly and thickens.
- Stir in the coconut milk and return the chicken and any juices to the skillet. Simmer gently for 8 to 10 minutes, until the chicken is cooked through and the sauce is silky.
- Taste and adjust the salt or cayenne. Garnish with cilantro and serve with basmati rice or warm dairy free naan.