In a large bowl, combine the ingredients for the meatballs: ground beef, egg, breadcrumbs, parmesan cheese, onions, garlic, Italian seasoning, salt and pepper. Use your hands to combine the ingredients together until they’re moist and well blended.
Use an ice cream scooper or meat baller to form 10-12 meatballs. Set aside on a plate until the mixture is complete.
Heat a deep large skillet or Dutch oven on medium heat, add the olive oil and then place the meatballs on the skillet. Cook the meatballs until browned on all sides, about 1-2 minute per side. They do not need to be fully cooked at this point though.
Add the marinara sauce to the skillet and gently toss to combine with the meatballs. Lower the heat to low, cover the skillet and cook the meatballs in the sauce for 15-20 minutes, turning the meatballs occasionally.
Cook spaghetti according to package instructions until al dente, drain and return to the empty pot.
Add the cooked spaghetti noodles over the meatballs and marinara and toss gently to combine. Serve warm with fresh basil, if desired.