Brown the meat: In a large, deep skillet or Dutch oven, cook the ground beef over medium-high heat until browned, breaking it up as it cooks. If the pan is dry, add olive oil.
Drain any excess fat.
Sauté aromatics: Add the diced onion and cook 3–4 minutes, until softened. Stir in the garlic and cook 30 seconds, just until fragrant.
Season: Sprinkle in taco seasoning and chili powder. Stir to coat the meat and onions so the spices bloom and become aromatic.
Add liquids and tomatoes: Pour in the diced tomatoes with their juices, tomato sauce, and broth.
Stir well and bring to a gentle boil.
Add spaghetti: Break the spaghetti in half so it fits easily in the pot. Submerge the strands in the liquid. Reduce heat to medium-low.
Simmer: Cook uncovered for 12–14 minutes, stirring every couple of minutes to prevent sticking.
The pasta should become tender and the sauce will thicken. If it looks too dry before the pasta is done, add a splash of broth or water.
Make it creamy: Stir in the milk. Let it simmer 1–2 minutes to warm through and slightly thicken.
Add cheese: Remove from heat and stir in 1 cup of shredded cheese until melted and silky.
Taste and season with salt and pepper.
Finish and serve: Sprinkle the remaining 1/2 cup of cheese over the top. Cover the pot for 1–2 minutes so it melts. Garnish with your favorite toppings and serve hot.