Veteran all-rounder Shane Watson admits he's only got himself to blame after being dropped for Wednesday's 275-run mauling of Afghanistan at the WACA Ground.

Watson was forced to make way for the returning James Faulkner, and he faces a fight to break back into the squad for Sunday's clash with Sri Lanka at the SCG.

Shane Watson: 'I know I haven't scored enough runs'. Credit:AFP

The 33-year-old has averaged just 22.3 from his past 11 ODI innings, and his form in the Test arena has also been patchy.

With Faulkner and Mitch Marsh now favoured as Australia's premier ODI all-rounders, Watson faces a fight to win back his World Cup spot.