Heavy fighting between government troops and Tamil Tigers in northern Sri Lanka has left 21 people dead on both sides, the defence ministry said Wednesday.