The 32 teams were drawn into eight groups of four, with the restriction that teams from the same association could not be drawn against each other. For the draw, the teams were seeded into four pots based on the following principles (Regulations Article 13.06):
Pot 1 contained the Champions League title holders, the Europa League title holders, and the champions of the top six associations based on their 2017 UEFA country coefficients. If either the Champions League or Europa League title holders were one of the champions of the top six associations, the champions of the association ranked seventh (and possibly eighth) were also seeded into Pot 1.
On 17 July 2014, the UEFA emergency panel ruled that Ukrainian and Russian clubs would not be drawn against each other "until further notice" due to the political unrest between the countries.
Moreover, the draw was controlled for teams from the same association in order to split the teams evenly into the two sets of four groups (A–D, E–H) for maximum television coverage. On each matchday, one set of four groups played their matches on Tuesday, while the other set of four groups played their matches on Wednesday, with the two sets of groups alternating between each matchday. The following pairings were announced by UEFA after the group stage teams were confirmed:
Spain: Real Madrid and Barcelona, Atlético Madrid and Valencia
Germany: Bayern Munich and Borussia Dortmund, Schalke 04 and 1899 Hoffenheim
England: Manchester City and Tottenham Hotspur, Manchester United and Liverpool
Italy: Juventus and Inter Milan, Napoli and Roma
France: Paris Saint-Germain and Lyon
Russia: Lokomotiv Moscow and CSKA Moscow
Portugal: Porto and Benfica
Netherlands: PSV Eindhoven and Ajax
The fixtures were decided after the draw, using a computer draw not shown to public, with the following match sequence (Regulations Article 16.02):
Note: Positions for scheduling do not use the seeding pots, e.g. Team 1 is not necessarily the team from Pot 1 in the draw.
Group stage schedule
18–19 September 2018
2 v 3, 4 v 1
2–3 October 2018
1 v 2, 3 v 4
23–24 October 2018
3 v 1, 2 v 4
6–7 November 2018
1 v 3, 4 v 2
27–28 November 2018
3 v 2, 1 v 4
11–12 December 2018
2 v 1, 4 v 3
There were scheduling restrictions: for example, teams from the same city (e.g. Real Madrid and Atlético Madrid) in general were not scheduled to play at home on the same matchday (to avoid them playing at home on the same day or on consecutive days, due to logistics and crowd control), and teams from "winter countries" (e.g. Russia) were not scheduled to play at home on the last matchday (due to cold weather).
Teams were ranked according to points (3 points for a win, 1 point for a draw, 0 points for a loss), and if tied on points, the following tiebreaking criteria were applied, in the order given, to determine the rankings (Regulations Articles 17.01):
Goals scored in head-to-head matches among tied teams;
Away goals scored in head-to-head matches among tied teams;
If more than two teams were tied, and after applying all head-to-head criteria above, a subset of teams were still tied, all head-to-head criteria above was reapplied exclusively to this subset of teams;
Goal difference in all group matches;
Goals scored in all group matches;
Away goals scored in all group matches;
Wins in all group matches;
Away wins in all group matches;
Disciplinary points (red card = 3 points, yellow card = 1 point, expulsion for two yellow cards in one match = 3 points);
The matchdays were 18–19 September, 2–3 October, 23–24 October, 6–7 November, 27–28 November, and 11–12 December 2018. The scheduled kickoff times were 21:00 CET/CEST, with two matches on each Tuesday and Wednesday scheduled for 18:55 CET/CEST.
Times are CET/CEST,[note 1] as listed by UEFA (local times, if different, are in parentheses).