Preheat your oven to 375°F (190°C). Lightly grease a 9x13-inch baking dish and set it aside.
Heat the olive oil in a large skillet over medium heat. Add the finely chopped yellow onion and cook for about 3 to 4 minutes, stirring occasionally, until it softens and turns translucent.
Add the ground beef to the skillet. Cook, breaking it up with a spoon, for about 6 to 8 minutes, until the beef is browned and no longer pink.
Stir in the minced garlic, 1 teaspoon ground cumin, 1 teaspoon chili powder, 1/2 teaspoon dried oregano, 1/2 teaspoon salt, and 1/4 teaspoon black pepper. Cook for 1 to 2 minutes, stirring, until the spices are fragrant.
Pour in 1/2 cup canned tomato sauce and stir to coat the beef mixture. Let it simmer gently for 2 to 3 minutes, then remove the skillet from the heat and set aside to cool slightly.
In a medium saucepan, melt the unsalted butter over medium heat. Sprinkle in the all-purpose flour and whisk continuously for about 1 minute to form a smooth paste without letting it brown too much.
Add 2 tablespoons chili powder, 1 teaspoon ground cumin, 1/2 teaspoon garlic powder, 1/2 teaspoon onion powder, 1/2 teaspoon dried oregano, 1/2 teaspoon salt, and 1/4 teaspoon black pepper to the saucepan. Whisk for another 30 seconds to coat the spices in the butter and flour mixture.
Slowly pour in the low-sodium chicken broth while whisking constantly to avoid lumps. Add 1/2 cup canned tomato sauce and continue to whisk until everything is well combined.
Bring the sauce to a gentle simmer, whisking occasionally, and cook for 5 to 7 minutes until it slightly thickens to a pourable, smooth consistency. Remove from heat and let it sit for a couple of minutes.
In a small bowl, combine the shredded cheddar cheese and shredded Monterey Jack cheese, tossing them together evenly.
Spread a thin layer of the homemade red sauce, about 1/2 cup, over the bottom of the prepared baking dish to lightly coat it.
Lay one flour tortilla on a clean work surface. Spoon a line of the warm beef mixture down the center of the tortilla, using about 1/4 cup of filling.
Sprinkle a small handful of the cheese mixture, about 2 tablespoons, over the beef in the tortilla.
Roll the tortilla up snugly around the beef and cheese, then place it seam-side down in the sauced baking dish.
Repeat the filling and rolling process with the remaining tortillas, beef mixture, and some of the cheese mixture, arranging all the rolled enchiladas in a single layer in the baking dish.
Pour the remaining homemade red sauce evenly over the top of the arranged enchiladas, making sure all the tortillas are lightly covered.
Sprinkle the remaining cheese mixture evenly over the sauced enchiladas.
Cover the baking dish loosely with foil and bake in the preheated oven for 15 minutes.
Remove the foil and continue baking for another 10 to 15 minutes, until the cheese is melted and bubbling and the enchiladas are heated through.
Let the beef enchiladas with homemade red sauce rest for about 5 minutes out of the oven before serving so they can set slightly and are easier to serve.