The 28-year-old was one of the first signings that manager Chris Powell made following his arrival at the Valley last summer.
As a result, the striker spent part of last season on loan with Wycombe Wanderers, scoring six goals in the process.
"We are delighted to finally get Paul. It was a long battle to get him," Brentford manager Uwe Rosler told the club's official website. "Without Paul's commitment and desire to want to play for Brentford, the deal would not have happened.
"It is fantastic to see a player like Paul prepared to make sacrifices to join us and it is pleasing for me that he believes in what we want to achieve.
"I know that Paul wants to join us for the right reasons and I thank him for that."
Hayes will wear the number 23 shirt at Griffin Park.