Brown the sausage
Place a large skillet over medium heat.
Add the breakfast sausage, breaking it up with a wooden spoon as it cooks.
Cook until the sausage is no longer pink and nicely browned, 7–10 minutes. Do not drain the fat unless there is more than about 3 tablespoons in the pan.
Add butter if needed
If the sausage has rendered very little fat, add the unsalted butter to the pan.
Stir until the butter is melted and coats the sausage.
Make the roux
Sprinkle the flour evenly over the cooked sausage.
Stir constantly, cooking the flour with the fat and sausage for 2–3 minutes. The mixture will look thick and pasty; this step removes the raw flour taste.
Add the milk
Slowly pour in the milk while stirring constantly to avoid lumps.
Keep stirring until everything is well combined and the mixture starts to look smooth.
Simmer and thicken
Bring the gravy to a gentle simmer over medium heat, stirring frequently.
As it simmers, the gravy will thicken, 5–8 minutes.
If it becomes too thick, add a splash of extra milk, a little at a time, until it reaches your desired consistency.
Season the gravy
Stir in the salt, black pepper, garlic powder, onion powder, and red pepper flakes (if using).
Taste and adjust seasoning, adding more salt and pepper as needed. Sausage and biscuits both soak up a lot of seasoning, so don’t be afraid of the pepper.
Serve
Remove from heat.
Serve the sausage gravy hot over warm split biscuits, toast, or hash browns.