Squeeze excess liquid from zucchini and carrot. Place in a large bowl. Add mince, onion, basil, breadcrumbs, egg, and half the garlic. Season with salt and pepper. Mix well. Roll level tablespoons of mixture into balls. Place on a large plate.
Cook spaghetti in a large saucepan of boiling water, following packet directions, until tender. Drain.
Meanwhile, heat oil in a large non-stick frying pan over medium-high heat. Cook meatballs, in batches, turning regularly, for 5 minutes or until browned. Transfer to a large plate.
Add remaining garlic to pan. Cook, stirring, for 30 seconds or until fragrant. Add tomatoes. Season with pepper. Cook, stirring, for 3 minutes or until tomatoes collapse.
Add meatballs. Cook for 4 to 5 minutes or until cooked through. Serve meatballs on spaghetti topped with basil and parmesan.