Core the cabbage, then slice it thin. Chop the onion and mince the garlic.
Cook bacon in a large skillet over medium heat until crisp, 8–10 minutes.
Transfer bacon to a plate. Leave about 2–3 tablespoons drippings in the pan.
Sauté onion in the drippings until translucent, 3–4 minutes. Stir in garlic for 30 seconds.
Add cabbage and toss to coat. Season with salt, black pepper, paprika, and red pepper flakes.
Pour in broth if using. Cover and cook, stirring occasionally, until tender, 8–12 minutes.
Uncover and cook to evaporate excess moisture and lightly brown edges, 3–5 minutes.
Stir in vinegar, butter, and sugar if using. Crumble bacon back in and toss. Adjust seasoning.
Serve hot as a hearty side or simple main.