Gather all ingredients.
Place potatoes into a saucepan with enough water to cover. Bring to a boil and cook until tender, 15 to 20 minutes. Drain.
While pototoes are cooking, cook bacon in a large skillet over medium-high heat, turning occasionally, until evenly browned, about 10 minutes. Drain bacon slices on paper towels; crumble and set aside. Reserve drippings in the skillet.
Sauté cabbage and onion in drippings in the skillet over medium heat until soft and translucent, 10 to 15 minutes; cover the skillet to decrease cooking time if desired. Remove from heat.
Mash potatoes with milk in a large bowl; season with salt and pepper.
Fold in bacon, cabbage and onion.
Transfer mixture to a large serving bowl. Make a well in the center of potato mixture and pour in melted butter. Serve hot.
