Chop chard stems into 1-inch pieces. Tear leaves in half.
Heat olive oil in a large skillet over medium heat. Add onion and garlic; cook and stir until fragrant. Stir in bacon; cook until browned and crisp, about 5 minutes.
Stir Swiss chard stems and leaves into the skillet. Reduce heat and cover skillet. Cook for 5 minutes. Turn chard with tongs to coat with bacon drippings. Cover and cook, turning once, until stems are fork tender, about 10 minutes more.
Increase heat to medium; stir white wine and red pepper flakes into the skillet. Cook, uncovered, until moisture evaporates, 2 to 3 minutes. Season with salt and pepper.