Wasps got to within a point with 20 minutes left on the clock but could not nick the victory in the dying seconds.
Paul Sackey's converted try had given Wasps hope but the Tigers held on to the lead they established by half-time.
Mark van Gisbergen landed three penalties for the visitors but Varndell's virtuoso display proved key.
Wasps director of rugby Ian McGeechan:
"We controlled the majority of the game and I thought we played very well apart from the tries. "I thought some of them were soft. It's hugely disappointing to play so well in so many areas and not win but it's not that we are playing badly.
"What we have to do is look at our finishing. I would be more concerned if we were not playing well.
"Varndell's finishing was the difference between the teams. We blew three chances that he would have taken."
Leicester: Goode; A Tuilagi, Smith, Vesty, Varndell; Healey, Bemand; Rowntree, Buckland, White; Cullen, Kay; L Deacon, Jennings, Corry (capt).
Replacements: Holford, Chuter, Hamilton, Moody, Gibson, Cornwell, Lloyd.
Wasps: Van Gisbergen; Sackey, Erinle, Hoadley, Evans; Staunton, Reddan; Payne, Ibanez, Bracken; Shaw, Birkett; Leo, Worsley, Dallaglio (capt).
Replacements: Ward, Va'a, Haskell, Lock, Honeyben, King, Abbott.