Preheat the oven to Gas mark 4-5, 180-190°C, 350-375°F.
In a large, shallow bowl mix together the marinade ingredients.
Place the joint on a chopping board, score the fat, season on both sides and transfer to the bowl with the marinade and coat well. Cover and marinate in the fridge for up to 2 hours, or overnight if time allows, turning occasionally.
Remove the joint from the marinade mixture, strain the marinade and reserve for later. Place the joint on a metal rack in a large non-stick roasting tin and open roast for the preferred, calculated cooking time. After 30 minutes cover the joint with foil.
45 minutes before the end of the cooking time, remove the joint and the rack from the tin, add the garlic and shallots to the tin and place the joint directly on top. Return to the oven for the remainder of the cooking time.
When the beef is ready remove the joint from the tin with the vegetables and transfer to a warmed platter, cover and set aside to rest.
To prepare the gravy; spoon off any excess fat from the roasting tin and discard. Place the tin over a medium heat and sprinkle over the flour. Stir well with a small whisk or spoon, add a little stock and stir again, scraping the base of the pan to release any rich, beefy sediment.
Add the remaining stock, 150ml of the reserved marinade and any meat juices from the platter. Adjust the seasoning, if required and simmer for 8-10 minutes, stirring occasionally, or until reduced to a well-flavoured gravy. Strain before serving.
Serve with roast potatoes, stuffing, seasonal vegetables and the gravy.
Tip: If you use the sirloin joint this will feed 12 people.