Place the bread and onion in a large bowl. Mix to combine so the onion juice soaks the bread.
Add all the remaining meatball ingredients except the olive oil. Use your hands to mix well.
Measure out a heaped tablespoon and roll lightly to form a ball. Repeat with the remaining mixture.
Roll each meatball into a little flour. Heat 1½ tbsp olive oil in a large nonstick frypan over medium-high heat. Add the meatballs and brown all over - about 5 minutes. I prefer to shake the pan gently to roll the meatballs around, rather than using a spoon (they hold their shape better).
When they are browned but not cooked through, carefully transfer them onto a plate.
Heat 1 tbsp of olive oil into the frying pan. Add the onion and garlic and sauté for 2 to 3 minutes until translucent. Add the remaining sauce ingredients. Bring to a simmer, then turn down to medium-low.
Carefully transfer the meatballs and any juices that have pooled on the plate into the sauce.
Cook the meatballs for 10 minutes, turning and stirring occasionally. Add salt and pepper to taste.
While the meatballs are cooking, cook your pasta of choice.