Posey grew up in Leesburg, Georgia. He played four sports in high school; when playing baseball, he excelled at hitting and pitching. He attended Florida State University, where he began playing the catcher position. He won the Golden Spikes Award in 2008 and was selected by the Giants with the fifth overall pick in the 2008 Major League Baseball Draft. Posey made his major league debut on September 11, 2009. After beginning the 2010 season in the minor leagues, he was called back up to the major leagues in May. He played first base when he came up, but became the Giants' regular catcher at the end of June.
Posey returned from his injury in 2012 and posted a .336 batting average to win the 2012 NL batting title. He became the second San Francisco Giant to win the batting title and was named the NL Most Valuable Player for 2012. He won his second World Series that year as the Giants swept the Detroit Tigers in four games. In 2013, Posey signed an eight-year contract extension worth $167 million, a record in sum and in length for a player with his level of experience. He won his third World Series the following year as the Giants defeated the Kansas City Royals.
Posey played college baseball for the Florida State Seminoles under coach Mike Martin. He played shortstop as a freshman at Florida State, starting all 65 games for the Seminoles. He was named a Louisville Slugger Freshman All-American. He finished his freshman season with a .346 batting average, four home runs and 48 RBI. As a sophomore, Posey moved to the catcher position on the suggestion of assistant coach Mike Martin, Jr. He batted .382 with three home runs and 65 RBI. After one season of playing the position, Posey finished second to Ed Easley in Johnny Bench Award voting.
Because of an injury to Giants starting catcher Bengie Molina, Posey was called up to the majors for the first time on September 2, 2009. He made his major league debut on September 11, striking out in his first at bat against Hiroki Kuroda of the Los Angeles Dodgers. Posey got his first major league hit on September 19 against Jeff Weaver of the Dodgers. In 17 at-bats with the Giants in 2009, Posey had two hits.
Coming into 2010, Baseball America ranked Posey as the top prospect in the Giants' organization. After again appearing in the Giants' spring training camp, Posey began the 2010 season at Fresno, batting .349 with 31 runs scored, 60 hits, 13 doubles, six home runs, and 32 RBI in 47 games.
Posey was called up to the major leagues on May 29, 2010, and started at first base against the Arizona Diamondbacks. Posey drove in the first runs of his major league career, going three for four with three RBIs. He appeared primarily at first base through the end of June. Posey hit his first career home run against Aaron Harang of the Cincinnati Reds on June 9. Following Molina's trade to the Texas Rangers on June 30, Posey became the starting catcher for the Giants.
Posey hit his first career grand slam against Chris Narveson of the Milwaukee Brewers on July 7, en route to a two-home run, four-hit, six-RBI night. This was part of a ten-game streak from July 1 to July 10 during which he batted .514 with 19 hits, six home runs, and 13 RBI to set a National League (NL) record for rookies during any ten-day stretch according to the Elias Sports Bureau. This performance also earned him the NL Player of the Week honors for the week of July 5–11, 2010.
On September 21, Posey hit an eighth-inning home run against Andrew Cashner of the Chicago Cubs to win the game, 1-0. He hit another eighth-inning home run against Luke Gregerson of the San Diego Padres in the final game of the year on October 3 as Giants secured the NL West Division championship by defeating the Padres 3-0. In 108 games, Posey batted .305 with 58 runs scored, 124 hits, 23 doubles, 18 home runs, and 67 RBI.
Posey set season highs with three hits and four RBI on April 6, 2011, including a two-run home run against Tim Stauffer in an 8–4 victory over the Padres.
On May 25, during a game against the Florida Marlins, Posey was injured during a collision with Scott Cousins at home plate as Cousins scored the winning run in the 12th inning of a 7–6 Giants' loss. Posey suffered a fractured fibula and torn ligaments in his ankle, requiring season-ending surgery. Cousins, who was not disciplined, said he hit Posey intentionally in order to score. "If you hit them, you punish them and you punish yourself, but you have a chance of that ball coming out." He expressed regret over injuring Posey, saying "I certainly didn’t want him to get hurt." Cousins received threats from fans, but Posey denounced them: "I appreciate the continued support of Giants fans and others as I begin the process of working my way back ... But in no way do I condone threats of any kind against Scott Cousins or his family. As I said last week, I'm not out to vilify Scott." In 45 games, Posey batted .284 with 17 runs scored, 46 hits, five doubles, four home runs, and 21 RBI.
Posey started at catcher during Matt Cain's perfect game on June 13, 2012, the 22nd in major league history. He stated afterwards that the game had him feeling "as nervous as I've ever been on a baseball field." He played in the 2012 Major League Baseball All-Star Game, his first, on July 10, going 0-2 with a walk and a run scored. After batting .289 with 10 home runs and 43 RBI in 77 games before the All-Star break, Posey batted .385 with 14 home runs and 60 RBI in the final 71 games of the season. On July 17, he had three hits and five RBI in a 9–0 victory over the Braves. Four days later, he had four hits and three RBI, including a two-run home run against Cole Hamels in a 10-inning, 6–5 victory over the Phillies. Two days later, he had three hits and four RBI, including a three-run home run against Clayton Richard in a 7–1 victory over the Padres. He hit a game-winning three-run home run against Lance Lynn on August 7 in a 4–2 victory over the St. Louis Cardinals. On September 17, he had three hits, including a game-winning two-run home run against Wade Miley in a 3–2 victory over the Diamondbacks. In 148 games, Posey had 78 runs scored, 178 hits (tied for eighth in the NL with David Wright), 39 doubles (tied for eighth with Yonder Alonso), 24 home runs, and 103 RBI (sixth).
Posey's teammate Melky Cabrera batted .346 in 2012, but he asked MLB to rule him ineligible for the batting title after receiving a 50-game suspension for raised testosterone levels. As a result, Posey led both leagues in batting in 2012 with an average of .336, becoming the first catcher to lead the NL in hitting since Ernie Lombardi of the Boston Braves in 1942. He also became only the second San Francisco Giant to win the batting title, following Barry Bonds in 2002 and 2004. Posey's .433 batting average against left-handed pitching (71 for 164) led all batters in the major leagues in 2012.
In Game 5 of the NLDS against the Reds on October 11, Posey hit a grand slam against Reds starter Mat Latos to give the Giants a 6-0 lead and subsequently won the game. The Giants become the second NL team to win a Division Series after being down two games to none and first since the LDS became a permanent standard in the playoffs in 1995. Posey became just the third catcher in MLB history to hit a grand slam in the playoffs, along with Berra and Eddie Pérez. He also completed a strikeout-throw out double play at third base in the sixth inning to help preserve the victory. He batted .154 with four hits and one RBI in the NLCS as the Giants defeated the Cardinals in seven games. He hit a two-run home run against Max Scherzer in Game 4 of the World Series as the Giants swept the Detroit Tigers, giving Posey his second World Series ring.
Eligible for salary arbitration for the first time, Posey signed a one-year, $8 million contract with the Giants prior to the 2013 spring training season. On March 29, Posey agreed to an eight-year contract extension worth $167 million, said by the Giants to be the most lucrative in franchise history. The contract wiped out three arbitration years and five years of free agency for Posey, locking in his services through the 2021 season with a club option for 2022. The agreement was the second largest in major league history for a catcher, exceeded only by that of Joe Mauer in 2010 with the Minnesota Twins.
On July 1, 2013, Posey was named National League Player of the Week for the week of June 23-June 29. It was the second time Posey earned the award during his career, and the first since 2010. In six games Posey hit .500, to raise his average from .307 to .322, had an on-base percentage of .560, a slugging percentage of 1.182, stroked four home runs, and drove in six.
On July 13, 2013, Posey caught Tim Lincecum's first no-hitter against the San Diego Padres. The no-hitter also marks the 15th ever in Giants history as well as the second performed in an away ballpark.
On July 16, 2013, Posey played in his second straight All-Star Game, striking out in his only at-bat.
Posey's offense regressed in 2013 following his 2012 MVP season, especially in the second half of the season where he hit just 3 home runs. However, he still finished with a solid .294 batting average, 15 home runs and 72 runs batted in.
On August 29, 2014, in a 13–2 win over the Milwaukee Brewers at AT&T Park, Posey went 5-for-5 in 6 innings, and became the only catcher in Giants franchise history to have two career five-hit games.
In the 2014 World Series the Giants defeated the Kansas City Royals in seven games, giving Posey his third ring in five years.
On June 19, in a 9–5 win over the Los Angeles Dodgers at Dodger Stadium, Posey hit a grand slam and stole a base, becoming the first Giants catcher in 112 years since Roger Bresnahan to accomplish the feat. Four days later, in a 6–0 win over the San Diego Padres at AT&T Park, Posey hit his second grand slam in less than a week. On July 5, Posey was selected to his third career All-Star Game and was number one in voting for NL catchers.
On November 11, Posey was named winner of the 2015 Wilson Defensive Player of the Year award, given to the best defensive catcher in MLB. The following day, Posey was named winner of the 2015 National League Silver Slugger award at catcher.
Posey married his high school sweetheart, Kristen, in January 2009. They had twins in 2011. Posey lives with his family in the East Bay during the season, and they also have a home in Georgia during the off-season.