Josh Brolin has reportedly checked into rehab for substance abuse.

The 47-year-old actor - who is best known for his roles in 'No Country for Old Men', 'W.' and 'Milk' - has admitted himself into a treatment facility in Northern California just weeks after allegedly getting into a drunken fistfight at a pub.

A source told ''He realised he needed help and is committed to his sobriety.''

Earlier this month, Josh was reportedly seen fighting with an unknown male at O'Brien's Irish Pub in Santa Monica, California.

The altercation took place near the entrance of the establishment just after 2am and moments after trading blows Josh is claimed to have shared a hug with his opponent.

Just days later, the actor was also seen getting into a heated argument with a cab driver at a taco restaurant drive-thru.

The actor - who will next be seen in 'Labor Day' with Kate Winslet and also stars in Spike Lee's eagerly anticipated 'Oldboy' remake - announced in February he and actress wife Diane Lane have ended their eight-year marriage and filed for divorce.

Josh began the year with an arrest for public intoxication in Santa Monica on January 1.

The actor's father is Hollywood star James Brolin and his stepmother is screen and music icon Barbra Streisand.