Kieron Dyer scored his first league goal since 2007 as Middlesbrough recorded a 2-1 home win over leaders Cardiff.