In a large saucepan, cover potatoes and carrots with 2 inches of cold water and bring to a boil over high heat. Reduce heat and simmer until potatoes are tender, about 20 minutes.
Meanwhile, cook bacon in a large skillet over medium heat until crisp; drain on paper towels, then crumble when cooled. Discard all but 2 tablespoons of the bacon drippings from skillet; add oil and onion to drippings and sauté 10 minutes or until softened and lightly browned. Stir in thyme; cook 2 minutes longer.
When potatoes are fork-tender, drain in a colander and transfer mixture to a large bowl. Add buttermilk, butter, and salt; mash with a potato masher until potatoes are smooth, with small flecks of carrot visible. Stir in onions. Crumble bacon over top.