Imagine slicing into a thick slab of tofu with a shattering parmesan-almond crust that crackles under your fork, revealing a creamy, tender interior — then twirling it through silky zucchini noodles coated in a garlicky basil cream sauce. That is exactly what this Air Fryer Tofu Milanese delivers. It is the kind of Italian-inspired lunch that makes you forget you are eating low-carb, with layers of umami from aged parmesan, aromatic fresh basil, and the deeply satisfying richness of butter-kissed heavy cream.
Each generous serving clocks in at roughly 660 calories with 55 grams of fat, 32 grams of protein, and just 5 grams of net carbs — an ideal keto macro profile where fat accounts for about 75% of total energy. The combination of extra-firm tofu and the parmesan-almond crust delivers serious protein without any hidden carbs, while the cream sauce and butter ensure your fat intake stays exactly where it needs to be for sustained ketosis.
Best of all, this entire meal comes together in about 33 minutes with minimal cleanup. The air fryer does the heavy lifting, crisping the tofu to golden perfection with barely any oil, while you quickly toss together the zucchini noodles and cream sauce on the stovetop. It packs beautifully into containers for weekday lunches — just keep the sauce separate and reheat everything for a restaurant-quality midday meal at your desk.
Ingredients (serves 2)
For the tofu milanese:
- 12 oz (340g) extra-firm tofu, drained and pressed
- 1/4 cup (28g) blanched almond flour
- 1/4 cup (25g) finely grated parmesan cheese
- 1 tsp Italian seasoning
- 1/2 tsp garlic powder
- 1/4 tsp fine sea salt
- 1/8 tsp freshly ground black pepper
- 1 large egg, beaten
- Olive oil spray
For the creamy basil zucchini noodles:
- 1 large zucchini (about 10 oz / 280g), spiralized
- 1 tbsp (14g) unsalted butter
- 2 cloves garlic, minced
- 1/3 cup (80ml) heavy whipping cream
- 1/2 cup (56g) shredded low-moisture mozzarella
- 1/4 tsp fine sea salt
- Pinch of red pepper flakes
- 8–10 fresh basil leaves, torn
For serving:
- 1/2 tbsp (7ml) extra-virgin olive oil
- Freshly grated parmesan, for finishing
- Additional fresh basil leaves
Instructions
Press and slice the tofu. If you have not already pressed your tofu, wrap the block in a clean kitchen towel and place a heavy skillet or cutting board on top for at least 15 minutes to remove excess moisture. Slice the pressed tofu horizontally into 4 even steaks, each about 1/2-inch (1.25cm) thick. Pat completely dry with paper towels — this is essential for a crispy crust.
Prepare the coating. In a shallow bowl or plate, combine the almond flour, grated parmesan, Italian seasoning, garlic powder, salt, and black pepper. Stir with a fork until evenly mixed. Beat the egg in a separate shallow bowl.
Bread the tofu steaks. Dip each tofu steak first into the beaten egg, allowing the excess to drip off, then press both sides firmly into the almond-parmesan mixture. Make sure the coating adheres well, pressing gently with your fingertips. Set the breaded steaks on a plate and let them rest for 2–3 minutes while the air fryer preheats — this helps the coating set.
Preheat the air fryer. Set your air fryer to 400°F (200°C) and preheat for 3 minutes. Lightly spray the basket or tray with olive oil spray.
Air fry the tofu milanese. Arrange the breaded tofu steaks in a single layer in the air fryer basket, leaving a little space between each piece for air circulation. Give each steak a light spritz of olive oil spray on top. Air fry at 400°F (200°C) for 7 minutes. Carefully flip each steak using a thin spatula, spritz the other side lightly with oil spray, and air fry for another 5–6 minutes until deeply golden and crisp on both sides. The coating should look toasted and the edges should be firm and crunchy.
Start the sauce while the tofu cooks. Melt the butter in a medium skillet over medium heat. Add the minced garlic and cook, stirring constantly, for about 30 seconds until fragrant but not browned. Pour in the heavy cream, stir to combine, and let it simmer gently for 2 minutes until it just begins to thicken.
Add the zucchini noodles. Toss the spiralized zucchini into the skillet with the cream sauce. Cook for 2–3 minutes, tossing frequently with tongs, until the zucchini is just tender but still has a slight bite. You do not want mushy noodles — they should be al dente. Remove the skillet from the heat.
Melt in the mozzarella. Scatter the shredded mozzarella over the warm zucchini noodles and toss gently until the cheese melts into the cream sauce, creating a luscious, clingy coating. Season with salt and red pepper flakes. Fold in the torn basil leaves.
Plate and serve. Divide the creamy basil zucchini noodles between two plates or bowls. Lean two tofu milanese steaks against each pile of noodles. Drizzle each plate with a little extra-virgin olive oil, finish with a shower of freshly grated parmesan and a few whole basil leaves. Serve immediately.
Nutrition per Serving
| Nutrient | Amount |
|---|---|
| Calories | ~660 kcal |
| Fat | ~55g |
| Protein | ~32g |
| Total Carbs | ~9g |
| Fiber | ~4g |
| Net Carbs | ~5g |
Nutrition values are approximate and based on the specific ingredients and quantities listed. Actual values may vary depending on brands used.
Tips & Variations
Press the tofu thoroughly for maximum crispiness. The number-one enemy of crunchy air-fried tofu is excess water. For best results, press your extra-firm tofu for a full 20–30 minutes under a heavy weight, then blot each steak dry with paper towels right before breading. If you own a tofu press, even better — use it for at least 15 minutes. The drier the surface, the better the egg wash and coating will adhere, and the crispier your finished milanese will be.
Swap almond flour for a nut-free alternative. If you are avoiding tree nuts, replace the almond flour with an equal amount of sunflower seed flour or finely ground pork-free pork rind-style puffed cheese snacks (like Moon Cheese, crushed). Sunflower seed flour works nearly identically in terms of binding and crunch. Just be aware that sunflower seed flour can turn slightly green when combined with baking soda — not relevant here, but good to know for other recipes.
Watch for hidden carbs in pre-shredded mozzarella. Many store-bought pre-shredded cheeses contain potato starch or cellulose as anti-caking agents, which can add 1–2 grams of carbs per serving. For the cleanest keto macros, buy a block of low-moisture mozzarella and shred it yourself. It also melts significantly better into the cream sauce, giving you that beautiful, glossy finish.
Make it a meal-prep powerhouse. Store the crispy tofu steaks and the creamy zucchini noodles in separate airtight containers in the refrigerator for up to 3 days. When ready to eat, reheat the tofu steaks in the air fryer at 375°F (190°C) for 3–4 minutes to restore their crunch, and warm the noodles gently in a skillet or microwave. Keeping them separate prevents the coating from getting soggy.
Add an eggplant layer for a heartier version. Slice a small Italian eggplant into 1/4-inch rounds, salt them for 10 minutes to draw out moisture, then air fry alongside the tofu for a keto riff on eggplant parmesan. The eggplant adds volume and fiber without significantly increasing net carbs — a small Italian eggplant adds only about 2–3 grams of net carbs split across two servings.