Combine all marinade ingredients in a large bowl (oil, onion, cilantro, garlic, vinegar, lime juice, Worcestershire sauce, sugar, salt, cumin, paprika, chili powder, and pepper). Add steak to the marinade, turning the beef to make sure it is completely coated.Marinate for at least 1 hour or up to overnight.
If cooking on a grill, pre-heat the grill on medium-high to high (depending on your grill's heat). Make sure to scrape the grill clean and smooth, it will help reduce chances of the meat sticking to the grill when cooking.
Remove the steak from the marinade and cook over medium-high heat for about 3-4 minutes on each side or until your preferred doneness (if you are comfortable cooking on high heat, go for it since it does helps create a nice char-just be careful, the beef can cook a bit too quickly if you aren't on top of it!). The beef can be cooked in a skillet or on the grill - a skillet may be preferable if using slices rather than the whole steaks.
After cooking, allow meat to rest for about 5 minutes. If using whole steaks, slice 1/2-inch thick and serve on rice, in tortillas, or in a tortas (sandwiches).