Line a baking sheet with foil or a silicone baking mat.
Line the peppers on the baking sheet and bake for about 15 minutes, then carefully turn them over to cook the other side. The skins will blacken.
Place the roasted peppers in a plastic bag or tupperware and seal so that the steam is captured. Allow these to sit for about 10 minutes before moving onto the next step.
Using a paring knife, scrape the skin off of the roasted peppers, carefully slice into the peppers to open them, leave the tops and only slice enough to open them, don’t slice them completely in half.
Scrape out the membranes and seeds.
Stuff the peppers with cheese and fold the peppers closed again. Use toothpicks if needed to close them. (Just remember they are there so you remove them!!)
Add the oil to a large dutch oven and heat over high heat until the oil is hot enough that a drop of batter will sizzle when dropped in.
Prepare the batter by adding the egg yolks to a medium size mixing bowl.
Add the flour and stir to combine.
Add the egg whites to another bowl and beat until stiff peaks form. Fold the egg whites into the batter. Dip the chiles into the batter until they are coated. Then carefully add the chiles into the heated oil. Allow the chiles to fry for about 1-2 minutes, until the batter is a dark golden-brown color. Remove from the oil and set onto a plate lined with a paper towel.
To prepare the sauce, add the butter to a large sauce pan over medium heat.
Add the diced onion, bell pepper and cook until they are softened.
Add the minced garlic and cook for another 30 seconds or until the garlic is fragrant.
Add the flour and stir to coat. Cook for about 2-3 minutes to allow the flour to lightly brown.
Add in the tomatoes, salt, chili powder and stock. Cook for about 5-7 minutes until the sauce is thickened.
Carefully pour the sauce into a food processor, pulse until no large chunks remain.
Serve the chile rellenos with the sauce drizzled over.