In a large saucepan, melt the butter and olive oil over medium heat.
Add the onion and cook, stirring occasionally, until softened.
Stir in the garlic and cook until just fragrant, 30 seconds to 1 minute.
Add the tomatoes, oregano, salt, sugar, red pepper flakes, and basil.
Once the mixture is boiling, reduce heat to low, until barely simmering, and cook until reduced by half, about 60 minutes. Stir occasionally, pressing down on the tomatoes to break them apart.
Remove from heat, discard the basil stems, and puree until smooth using an immersion blender.
Adjust seasonings to taste and refrigerate in an airtight container until ready to use, up to two days.